mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-24 10:24:35 +00:00
opencl : use strstr to check if fp16 supported (#1611)
* Use strstr to check if fp16 supported * Ensure ext_buffer is null terminated
This commit is contained in:
parent
a6704643b6
commit
ca74884f66
@ -469,16 +469,11 @@ void ggml_cl_init(void) {
|
|||||||
|
|
||||||
size_t ext_str_size;
|
size_t ext_str_size;
|
||||||
clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, 0, NULL, &ext_str_size);
|
clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, 0, NULL, &ext_str_size);
|
||||||
char* ext_buffer = (char*) malloc(sizeof(char) * ext_str_size);
|
char *ext_buffer = (char *)alloca(ext_str_size + 1);
|
||||||
clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, ext_str_size, ext_buffer, NULL);
|
clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, ext_str_size, ext_buffer, NULL);
|
||||||
|
ext_buffer[ext_str_size] = '\0'; // ensure it is null terminated
|
||||||
// Check if ext_buffer contains cl_khr_fp16
|
// Check if ext_buffer contains cl_khr_fp16
|
||||||
for (size_t i = 0; i < ext_str_size - 12; i++) {
|
fp16_support = strstr(ext_buffer, "cl_khr_fp16") != NULL;
|
||||||
if (memcmp(ext_buffer + i, "cl_khr_fp16", 11) == 0) {
|
|
||||||
fp16_support = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free(ext_buffer);
|
|
||||||
fprintf(stderr, "ggml_opencl: device FP16 support: %s\n", fp16_support ? "true" : "false");
|
fprintf(stderr, "ggml_opencl: device FP16 support: %s\n", fp16_support ? "true" : "false");
|
||||||
|
|
||||||
cl_context_properties properties[] = {
|
cl_context_properties properties[] = {
|
||||||
|
Loading…
Reference in New Issue
Block a user