|
8 | 8 |
|
9 | 9 | #include "ggml.h"
|
10 | 10 |
|
11 |
| -#include <ggml_clblast_dequant.cl> |
| 11 | +#include "ggml_clblast_dequant.cl" |
12 | 12 |
|
13 | 13 | #define CL_CHECK(err, name) \
|
14 | 14 | do { \
|
|
19 | 19 | } \
|
20 | 20 | } while (0)
|
21 | 21 |
|
22 |
| -cl_platform_id platform; |
23 |
| -cl_device_id device; |
24 |
| -cl_context context; |
25 |
| -cl_command_queue queue; |
26 |
| -cl_program program; |
27 |
| -cl_kernel kernel_q4_0, kernel_q4_1, kernel_q4_2, kernel_q4_3; |
28 |
| -cl_mem cl_buffer_a, cl_buffer_qb, cl_buffer_b, cl_buffer_c; |
29 |
| -size_t cl_size_a = 0, cl_size_qb = 0, cl_size_b = 0, cl_size_c = 0; |
30 |
| - |
31 |
| -cl_program build_program_from_source(cl_context ctx, cl_device_id dev, const char* program_buffer) { |
32 |
| - cl_program program; |
33 |
| - char *program_log; |
34 |
| - size_t program_size, log_size; |
35 |
| - int err; |
36 |
| - |
37 |
| - program_size = strlen(program_buffer); |
38 |
| - |
39 |
| - program = clCreateProgramWithSource(ctx, 1, |
40 |
| - (const char**)&program_buffer, &program_size, &err); |
41 |
| - if(err < 0) { |
42 |
| - fprintf(stderr, "OpenCL error creating program"); |
43 |
| - exit(1); |
44 |
| - } |
45 |
| - |
46 |
| - err = clBuildProgram(program, 0, NULL, NULL, NULL, NULL); |
47 |
| - if(err < 0) { |
48 |
| - |
49 |
| - clGetProgramBuildInfo(program, dev, CL_PROGRAM_BUILD_LOG, |
50 |
| - 0, NULL, &log_size); |
51 |
| - program_log = (char*) malloc(log_size + 1); |
52 |
| - program_log[log_size] = '\0'; |
53 |
| - clGetProgramBuildInfo(program, dev, CL_PROGRAM_BUILD_LOG, |
54 |
| - log_size + 1, program_log, NULL); |
55 |
| - printf("%s\n", program_log); |
56 |
| - free(program_log); |
57 |
| - exit(1); |
58 |
| - } |
59 |
| - |
60 |
| - return program; |
| 22 | +static cl_platform_id platform; |
| 23 | +static cl_device_id device; |
| 24 | +static cl_context context; |
| 25 | +static cl_command_queue queue; |
| 26 | +static cl_program program; |
| 27 | +static cl_kernel kernel_q4_0, kernel_q4_1, kernel_q4_2, kernel_q4_3; |
| 28 | +static cl_mem cl_buffer_a, cl_buffer_qb, cl_buffer_b, cl_buffer_c; |
| 29 | +static size_t cl_size_a = 0, cl_size_qb = 0, cl_size_b = 0, cl_size_c = 0; |
| 30 | + |
| 31 | +static cl_program build_program_from_source(cl_context ctx, cl_device_id dev, const char* program_buffer) { |
| 32 | + cl_program program; |
| 33 | + char *program_log; |
| 34 | + size_t program_size, log_size; |
| 35 | + int err; |
| 36 | + |
| 37 | + program_size = strlen(program_buffer); |
| 38 | + |
| 39 | + program = clCreateProgramWithSource(ctx, 1, |
| 40 | + (const char**)&program_buffer, &program_size, &err); |
| 41 | + if(err < 0) { |
| 42 | + fprintf(stderr, "OpenCL error creating program"); |
| 43 | + exit(1); |
| 44 | + } |
| 45 | + |
| 46 | + err = clBuildProgram(program, 0, NULL, NULL, NULL, NULL); |
| 47 | + if(err < 0) { |
| 48 | + |
| 49 | + clGetProgramBuildInfo(program, dev, CL_PROGRAM_BUILD_LOG, |
| 50 | + 0, NULL, &log_size); |
| 51 | + program_log = (char*) malloc(log_size + 1); |
| 52 | + program_log[log_size] = '\0'; |
| 53 | + clGetProgramBuildInfo(program, dev, CL_PROGRAM_BUILD_LOG, |
| 54 | + log_size + 1, program_log, NULL); |
| 55 | + printf("%s\n", program_log); |
| 56 | + free(program_log); |
| 57 | + exit(1); |
| 58 | + } |
| 59 | + |
| 60 | + return program; |
61 | 61 | }
|
62 | 62 |
|
63 | 63 | void ggml_cl_init(void) {
|
|
0 commit comments