aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/compute/hs/cl/intel/gen8/u64/hs_target.h
blob: c543c7b52383f317e8eef0c32523f4d6399ffda8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
 * Copyright 2016 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can
 * be found in the LICENSE file.
 *
 */

//
//
//

#include "../../../hs_cl_target.h"

//
//
//

#include "hs_cl.h"

//
//
//

#ifndef HS_TARGET_NAME
#define HS_TARGET_NAME       hs_target
#endif

#define HS_TARGET_HELPER(a)  a

//
//
//

static struct hs_cl_target const HS_TARGET_NAME =
{
  .config = {
    .slab = {
      .threads_log2 = HS_SLAB_THREADS_LOG2,
      .width_log2   = HS_SLAB_WIDTH_LOG2,
      .height       = HS_SLAB_HEIGHT
    },

    .words = {
      .key          = HS_KEY_WORDS,
      .val          = HS_VAL_WORDS
    },

    .block = {
      .slabs        = HS_BS_SLABS
    },

    .merge = {
      .fm = {
        .scale_min  = HS_FM_SCALE_MIN,
        .scale_max  = HS_FM_SCALE_MAX
      },
      .hm = {
        .scale_min  = HS_HM_SCALE_MIN,
        .scale_max  = HS_HM_SCALE_MAX,
      }
    }
  },

  .program = {
#ifndef HS_DUMP_SOURCE
    0, // KERNELS ARE BINARIES
#include "hs_cl.bin.len.xxd"
    ,
#include "hs_cl.bin.xxd"
#else
    1, // KERNELS ARE SOURCE
#include "hs_cl.src.len.xxd"
    ,
#include "hs_cl.src.xxd"
#endif
  }
};

//
//
//

#ifdef HS_DUMP

#include <stdlib.h>
#include <stdio.h>

int
main(int argc, char const * argv[])
{
  FILE * fp = fopen("hs_target.bin","wb");

  fwrite(&HS_TARGET_NAME.config,1,sizeof(HS_TARGET_NAME.config),fp);

  size_t progsize =
    (HS_TARGET_NAME.program[1]<<24) | (HS_TARGET_NAME.program[2]<<16) |
    (HS_TARGET_NAME.program[3]<< 8) |  HS_TARGET_NAME.program[4];

  // fprintf(stderr,"%zu\n",progsize);

  progsize += 1 + sizeof(uint32_t);

  fwrite(HS_TARGET_NAME.program,1,progsize,fp);

  fclose(fp);

  return EXIT_SUCCESS;
}

#endif

//
//
//