2 * Author......: Jens Steube <jens.steube@gmail.com>
6 //fails on intel opencl sdk
7 //#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
8 //#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
14 #define DEVICE_TYPE_CPU 2
15 #define DEVICE_TYPE_GPU 4
16 #define DEVICE_TYPE_ACCEL 8
18 #if DEVICE_TYPE == DEVICE_TYPE_CPU
20 #elif DEVICE_TYPE == DEVICE_TYPE_GPU
22 #elif DEVICE_TYPE == DEVICE_TYPE_ACCEL
30 #if VENDOR_ID == (1 << 0)
32 #elif VENDOR_ID == (1 << 6)
43 #pragma OPENCL EXTENSION cl_amd_media_ops : enable
44 #pragma OPENCL EXTENSION cl_amd_media_ops2 : enable
48 * Unrolling is generally enabled, for all device types and hash modes
49 * There's a few exception when it's better not to unroll
52 // Some algorithms run into too much register pressure due to loop unrolling
90 #if KERN_TYPE == 10400
93 #if KERN_TYPE == 10500
96 #if KERN_TYPE == 10700
99 #if KERN_TYPE == 12300
102 #if KERN_TYPE == 12400
112 #if KERN_TYPE == 3200
115 #if KERN_TYPE == 5200
118 #if KERN_TYPE == 6100
121 #if KERN_TYPE == 6221
124 #if KERN_TYPE == 6222
127 #if KERN_TYPE == 6223
130 #if KERN_TYPE == 6400
133 #if KERN_TYPE == 6500
136 #if KERN_TYPE == 6800
139 #if KERN_TYPE == 7100
142 #if KERN_TYPE == 7400
145 #if KERN_TYPE == 8000
148 #if KERN_TYPE == 8200
151 #if KERN_TYPE == 10900
154 #if KERN_TYPE == 11600
157 #if KERN_TYPE == 12300
160 #if KERN_TYPE == 12800
163 #if KERN_TYPE == 12900
166 #if KERN_TYPE == 13000
173 // Some algorithms break due to loop unrolling, it's unknown why, probably compiler bugs
174 // Can overlap with above cases
179 #if KERN_TYPE == 1750
182 #if KERN_TYPE == 1760
185 #if KERN_TYPE == 6500
188 #if KERN_TYPE == 7100
191 #if KERN_TYPE == 9600
194 #if KERN_TYPE == 12200
197 #if KERN_TYPE == 12300