Snapdragon 820 Adreno 530 не возвращает правильную информацию об устройстве
Я пытаюсь получить информацию об устройствах CL_DEVICE_MAX_COMPUTE_UNITS и CL_DEVICE_MAX_CLOCK_FREQUENCY из графического процессора Adreno 530 на устройстве Snapdragon 820 (Samsung Galaxy S7). Но я получаю 4 за CL_DEVICE_MAX_COMPUTE_UNITS и 1 за CL_DEVICE_MAX_CLOCK_FREQUENCY. Это кажется неправильным, потому что CL_DEVICE_MAX_CLOCK_FREQUENCY = 1 означает 1 МГц. Ниже приведен мой код для извлечения этой информации:
cl_uint buf_uint;
clGetDeviceInfo(device.get(), CL_DEVICE_MAX_COMPUTE_UNITS, sizeof(buf_uint), &buf_uint, NULL);
printf(" DEVICE_MAX_COMPUTE_UNITS = %u\n", (unsigned int)buf_uint);
clGetDeviceInfo(device.get(), CL_DEVICE_MAX_CLOCK_FREQUENCY, sizeof(buf_uint), &buf_uint, NULL);
printf(" DEVICE_MAX_CLOCK_FREQUENCY = %u\n", (unsigned int)buf_uint);
Примечание: устройство относится к типу cl::Device.
Для Mac, кажется, работает правильно. Я получаю 40 вычислительных блоков и тактовую частоту 1200 МГц для Intel Iris Pro.
1 ответ
У меня такая же проблема на SDM665 SDM845...,
[INFO][OCL INFO] DEVICE MAX CLOCK FREQUENCY (1) MHz
Я подозреваю, что Qualcomm не хочет раскрывать этот секрет...
[INFO][OCL INFO] OPENCL DEVICE BASIC INFO:
[INFO][OCL INFO] CL_DEVICE_TYPE : CL_DEVICE_TYPE_GPU
[INFO][OCL INFO] CL_DEVICE_NAME : QUALCOMM Adreno(TM)
[INFO][OCL INFO] CL_DEVICE_VENDOR : QUALCOMM
[INFO][OCL INFO] CL_DEVICE_VERSION : OpenCL 2.0 Adreno(TM) 610
[INFO][OCL INFO] CL_DEVICE_OPENCL_C_VERSION : OpenCL C 2.0 Adreno(TM) 610
[INFO][OCL INFO] CL_DEVICE_PROFILE : FULL_PROFILE
[INFO][OCL INFO] CL_DRIVER_VERSION : OpenCL 2.0 QUALCOMM build: commit #03e27f8 changeid #I326e6aff90 Date: 11/02/20 Mon Local Branch: mybrancheb1d781c-1a78-f1f4-8c78-ac1f6bcc2cee Remote Branch: quic/gfx-adreno.lnx.1.0.r116-rel Compiler E031.37.12.02
[INFO][OCL INFO] OPENCL DEVICE PERFORMANCE INFO:
[INFO][OCL INFO] DEVICE ADDRESS BITS (64) bits
[INFO][OCL INFO] DEVICE MAX CLOCK FREQUENCY (1) MHz
[INFO][OCL INFO] DEVICE MAX COMPUTE UNITS (1) IN ONE DEVICE