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_platform_string = getenv("GGML_OPENCL_PLATFORM");
|
||||||
char * user_device_string = getenv("GGML_OPENCL_DEVICE");
|
char * user_device_string = getenv("GGML_OPENCL_DEVICE");
|
||||||
int user_platform_number = -1;
|
unsigned int user_platform_number = -1;
|
||||||
int user_device_number = -1;
|
unsigned int user_device_number = -1;
|
||||||
|
|
||||||
unsigned n;
|
unsigned n;
|
||||||
if (user_platform_string != NULL && sscanf(user_platform_string, " %u", &n) == 1 && n < n_platforms) {
|
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) {
|
if (user_device_string != NULL && sscanf(user_device_string, " %u", &n) == 1 && n < n_devices) {
|
||||||
user_device_number = (int)n;
|
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;
|
struct cl_device * selected_devices = devices;
|
||||||
unsigned n_selected_devices = n_devices;
|
unsigned n_selected_devices = n_devices;
|
||||||
|
@ -448,6 +456,7 @@ void ggml_cl_init(void) {
|
||||||
if (default_device == NULL) {
|
if (default_device == NULL) {
|
||||||
default_device = &selected_devices[0];
|
default_device = &selected_devices[0];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(stderr, "ggml_opencl: selecting platform: '%s'\n", default_device->platform->name);
|
fprintf(stderr, "ggml_opencl: selecting platform: '%s'\n", default_device->platform->name);
|
||||||
fprintf(stderr, "ggml_opencl: selecting device: '%s'\n", default_device->name);
|
fprintf(stderr, "ggml_opencl: selecting device: '%s'\n", default_device->name);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue