1 /* 2 * Copyright 2016 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can 5 * be found in the LICENSE file. 6 * 7 */ 8 9 // 10 // 11 // 12 13 #include "../../../hs_cl_target.h" 14 15 // 16 // 17 // 18 19 #include "hs_target.h" 20 #include "hs_config.h" 21 22 // 23 // 24 // 25 26 #ifndef HS_TARGET_NAME 27 #define HS_TARGET_NAME hs_target 28 #endif 29 30 // 31 // 32 // 33 34 struct hs_cl_target const HS_TARGET_NAME = 35 { 36 .config = { 37 .slab = { 38 .threads_log2 = HS_SLAB_THREADS_LOG2, 39 .width_log2 = HS_SLAB_WIDTH_LOG2, 40 .height = HS_SLAB_HEIGHT 41 }, 42 43 .words = { 44 .key = HS_KEY_WORDS, 45 .val = HS_VAL_WORDS 46 }, 47 48 .block = { 49 .slabs = HS_BS_SLABS 50 }, 51 52 .merge = { 53 .fm = { 54 .scale_min = HS_FM_SCALE_MIN, 55 .scale_max = HS_FM_SCALE_MAX 56 }, 57 .hm = { 58 .scale_min = HS_HM_SCALE_MIN, 59 .scale_max = HS_HM_SCALE_MAX, 60 } 61 } 62 }, 63 64 .program = { 65 #ifndef HS_DUMP_SOURCE 66 0, // KERNELS ARE BINARIES 67 #include "hs_kernels.bin.len.xxd" 68 , 69 #include "hs_kernels.bin.xxd" 70 #else 71 1, // KERNELS ARE SOURCE 72 #include "hs_kernels.src.len.xxd" 73 , 74 #include "hs_kernels.src.xxd" 75 #endif 76 } 77 }; 78 79 // 80 // 81 // 82 83 #ifdef HS_DUMP 84 85 #include <stdlib.h> 86 #include <stdio.h> 87 88 int 89 main(int argc, char const * argv[]) 90 { 91 FILE * fp = fopen("hs_target.bin","wb"); 92 93 fwrite(&HS_TARGET_NAME.config,1,sizeof(HS_TARGET_NAME.config),fp); 94 95 size_t progsize = 96 (HS_TARGET_NAME.program[1]<<24) | (HS_TARGET_NAME.program[2]<<16) | 97 (HS_TARGET_NAME.program[3]<< 8) | HS_TARGET_NAME.program[4]; 98 99 // fprintf(stderr,"%zu\n",progsize); 100 101 progsize += 1 + sizeof(uint32_t); 102 103 fwrite(HS_TARGET_NAME.program,1,progsize,fp); 104 105 fclose(fp); 106 107 return EXIT_SUCCESS; 108 } 109 110 #endif 111 112 // 113 // 114 // 115