MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / build_program_from_source

Function build_program_from_source

ggml-opencl.cpp:899–931  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

897static bool fp16_support;
898
899static cl_program build_program_from_source(cl_context ctx, cl_device_id dev, const char* program_buffer) {
900 cl_program p;
901 char *program_log;
902 size_t program_size;
903 size_t log_size;
904 int err;
905
906 program_size = strlen(program_buffer);
907
908 p = clCreateProgramWithSource(ctx, 1, (const char**)&program_buffer, &program_size, &err);
909 if(err < 0) {
910 fprintf(stderr, "OpenCL error creating program");
911 exit(1);
912 }
913
914 std::string compile_opts = "-cl-mad-enable -cl-unsafe-math-optimizations -cl-finite-math-only -cl-fast-relaxed-math "
915 "-DQK4_0=32 -DQR4_0=2 -DQK4_1=32 -DQR4_1=2 -DQK5_0=32 -DQR5_0=2 -DQK5_1=32 -DQR5_1=2 -DQK8_0=32 -DQR8_0=1 "
916 "-DQK_K=256 -DK_QUANTS_PER_ITERATION=" + std::to_string(K_QUANTS_PER_ITERATION);
917
918 err = clBuildProgram(p, 0, NULL, compile_opts.c_str(), NULL, NULL);
919 if(err < 0) {
920
921 clGetProgramBuildInfo(p, dev, CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size);
922 program_log = (char*) malloc(log_size + 1);
923 program_log[log_size] = '\0';
924 clGetProgramBuildInfo(p, dev, CL_PROGRAM_BUILD_LOG, log_size + 1, program_log, NULL);
925 fprintf(stderr, "ggml_opencl: kernel compile error:\n\n%s\n", program_log);
926 free(program_log);
927 exit(1);
928 }
929
930 return p;
931}
932
933void ggml_cl_init(void) {
934 cl_int err;

Callers 1

ggml_cl_initFunction · 0.70

Calls 3

fprintfFunction · 0.85
to_stringFunction · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected