Anonymous
ClImportMemoryARM Opencl иногда возвращает ошибку -6
Сообщение
Anonymous » 26 июл 2024, 17:50
Я тестирую функцию clImportMemoryARM opencl.
env
android C++
ЦП MTK G99
Графический процессор: Mali-G57 MC2 r0p1
РАСШИРЕНИЯ: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_length_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_import_memory_protected cl_arm_import_memory_android_hardware_buffer cl_arm_ Integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_job_slot_selection cl_arm_scheduling_controls cl_arm_Controlled_kernel_termination cl_ext_cxx_for_opencl
код
Код: Выделить всё
cl_int error;
cl_uint num_devices;
cl_device_id devices[1];
cl_platform_id platforms[1];
clGetDeviceIDs(platforms[0], CL_DEVICE_TYPE_GPU, 1, devices, &num_devices);
cl_context context = clCreateContext( NULL, 1, devices, NULL, NULL, &error );
cl_command_queue queue = clCreateCommandQueue(context, devices[0], 0, NULL);
int Length = 1024;
char *allocptr = (char *)malloc( Length*sizeof(char));
const cl_import_properties_arm importProperties[] =
{
CL_IMPORT_TYPE_ARM,
CL_IMPORT_TYPE_HOST_ARM,
0
};
cl_mem buffer = clImportMemoryARM( context,
CL_MEM_READ_WRITE,
importProperties,
allocptr,
Length*sizeof(char),
&error );
когда длина равна 1024, иногда clImportMemoryARM возвращает ошибку -6, что означает CL_OUT_OF_HOST_MEMORY, когда я устанавливаю длину = 1024x512x2, что соответствует khronos/cl_arm_import_memory.txt никогда не возникает ошибок произошел. Я хочу знать, почему.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... rn-error-6
1722005403
Anonymous
Я тестирую функцию clImportMemoryARM opencl. env [list] [*]android C++ [*]ЦП MTK G99 [*]Графический процессор: Mali-G57 MC2 r0p1 [*]РАСШИРЕНИЯ: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_length_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_import_memory_protected cl_arm_import_memory_android_hardware_buffer cl_arm_ Integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_job_slot_selection cl_arm_scheduling_controls cl_arm_Controlled_kernel_termination cl_ext_cxx_for_opencl [/list] код [code] cl_int error; cl_uint num_devices; cl_device_id devices[1]; cl_platform_id platforms[1]; clGetDeviceIDs(platforms[0], CL_DEVICE_TYPE_GPU, 1, devices, &num_devices); cl_context context = clCreateContext( NULL, 1, devices, NULL, NULL, &error ); cl_command_queue queue = clCreateCommandQueue(context, devices[0], 0, NULL); int Length = 1024; char *allocptr = (char *)malloc( Length*sizeof(char)); const cl_import_properties_arm importProperties[] = { CL_IMPORT_TYPE_ARM, CL_IMPORT_TYPE_HOST_ARM, 0 }; cl_mem buffer = clImportMemoryARM( context, CL_MEM_READ_WRITE, importProperties, allocptr, Length*sizeof(char), &error ); [/code] когда длина равна 1024, иногда clImportMemoryARM возвращает ошибку -6, что означает CL_OUT_OF_HOST_MEMORY, когда я устанавливаю длину = 1024x512x2, что соответствует khronos/cl_arm_import_memory.txt никогда не возникает ошибок произошел. Я хочу знать, почему. Подробнее здесь: [url]https://stackoverflow.com/questions/78786585/climportmemoryarm-opencl-sometime-return-error-6[/url]