Restore default platform + device selection by id behavior
This commit is contained in:
parent
e1ee2810ea
commit
4dfd4fe1eb
1 changed files with 54 additions and 45 deletions
|
@ -385,8 +385,8 @@ void ggml_cl_init(void) {
|
|||
|
||||
char * user_platform_string = getenv("GGML_OPENCL_PLATFORM");
|
||||
char * user_device_string = getenv("GGML_OPENCL_DEVICE");
|
||||
int user_platform_number = -1;
|
||||
int user_device_number = -1;
|
||||
unsigned int user_platform_number = -1;
|
||||
unsigned int user_device_number = -1;
|
||||
|
||||
unsigned n;
|
||||
if (user_platform_string != NULL && sscanf(user_platform_string, " %u", &n) == 1 && n < n_platforms) {
|
||||
|
@ -395,6 +395,14 @@ void ggml_cl_init(void) {
|
|||
if (user_device_string != NULL && sscanf(user_device_string, " %u", &n) == 1 && n < n_devices) {
|
||||
user_device_number = (int)n;
|
||||
}
|
||||
if (user_platform_number != -1 && user_device_number != -1) {
|
||||
cl_platform* platform = &platforms[user_platform_number];
|
||||
if (user_device_number >= platform->n_devices) {
|
||||
fprintf(stderr, "ggml_opencl: invalid device number %d\n", user_device_number);
|
||||
exit(1);
|
||||
}
|
||||
default_device = &platform->devices[user_device_number];
|
||||
} else {
|
||||
|
||||
struct cl_device * selected_devices = devices;
|
||||
unsigned n_selected_devices = n_devices;
|
||||
|
@ -448,6 +456,7 @@ void ggml_cl_init(void) {
|
|||
if (default_device == NULL) {
|
||||
default_device = &selected_devices[0];
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr, "ggml_opencl: selecting platform: '%s'\n", default_device->platform->name);
|
||||
fprintf(stderr, "ggml_opencl: selecting device: '%s'\n", default_device->name);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue