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
//
//
//
|