2 * Author......: Jens Steube <jens.steube@gmail.com>
6 #pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
7 #pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
13 #define DEVICE_TYPE_CPU 2
14 #define DEVICE_TYPE_GPU 4
15 #define DEVICE_TYPE_ACCEL 8
17 #if DEVICE_TYPE == DEVICE_TYPE_CPU
19 #elif DEVICE_TYPE == DEVICE_TYPE_GPU
21 #elif DEVICE_TYPE == DEVICE_TYPE_ACCEL
29 #if VENDOR_ID == (1 << 0)
31 #elif VENDOR_ID == (1 << 6)
42 #pragma OPENCL EXTENSION cl_amd_media_ops : enable
43 #pragma OPENCL EXTENSION cl_amd_media_ops2 : enable
47 * Unrolling is generally enabled, for all device types and hash modes
48 * There's a few exception when it's better not to unroll
51 // Some algorithms run into too much register pressure due to loop unrolling
86 #if KERN_TYPE == 10400
89 #if KERN_TYPE == 10500
92 #if KERN_TYPE == 10700
95 #if KERN_TYPE == 12300
98 #if KERN_TYPE == 12400
108 #if KERN_TYPE == 3200
111 #if KERN_TYPE == 5200
114 #if KERN_TYPE == 6100
117 #if KERN_TYPE == 6221
120 #if KERN_TYPE == 6222
123 #if KERN_TYPE == 6223
126 #if KERN_TYPE == 6400
129 #if KERN_TYPE == 6500
132 #if KERN_TYPE == 6800
135 #if KERN_TYPE == 7100
138 #if KERN_TYPE == 7400
141 #if KERN_TYPE == 8000
144 #if KERN_TYPE == 8200
147 #if KERN_TYPE == 10900
150 #if KERN_TYPE == 11600
153 #if KERN_TYPE == 12300
156 #if KERN_TYPE == 12800
159 #if KERN_TYPE == 12900
162 #if KERN_TYPE == 13000
169 // Some algorithms break due to loop unrolling, it's unknown why, probably compiler bugs
170 // Can overlap with above cases
175 #if KERN_TYPE == 1750
178 #if KERN_TYPE == 1760
181 #if KERN_TYPE == 6500
184 #if KERN_TYPE == 7100
187 #if KERN_TYPE == 9600
190 #if KERN_TYPE == 12200
193 #if KERN_TYPE == 12300