如何解决OpenCL报告预期计算单元的一半
我使用OpenCL(在Ubuntu下)查询可用平台,从而产生一个平台,
CL_PLATFORM_PROFILE :FULL_PROFILE
CL_PLATFORM_VERSION :OpenCL 2.1 AMD-APP(3143.9)
CL_PLATFORM_NAME :AMD加速并行处理
CL_PLATFORM_VENDOR :Advanced Micro Devices,Inc。
哪个提供一种设备,我可以通过以下设备进行查询:
cl_device_id device = devices[ j ];
cl_uint units = -1;
cl_device_type type;
size_t lmem = -1;
cl_uint dims = -1;
size_t wisz[ 3 ];
size_t wgsz = -1;
size_t gmsz = -1;
err = clGetDeviceInfo( device,CL_DEVICE_NAME,sizeof(name),name,0 );
err = clGetDeviceInfo( device,sizeof(vend),vend,CL_DEVICE_MAX_COMPUTE_UNITS,sizeof(units),&units,CL_DEVICE_TYPE,sizeof(type),&type,CL_DEVICE_LOCAL_MEM_SIZE,sizeof(lmem),&lmem,CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS,sizeof(dims),&dims,CL_DEVICE_MAX_WORK_ITEM_SIZES,sizeof(wisz),&wisz,CL_DEVICE_MAX_WORK_GROUP_SIZE,sizeof(wgsz),&wgsz,0 );
CHECK_CL
err = clGetDeviceInfo( device,CL_DEVICE_GLOBAL_MEM_SIZE,sizeof(gmsz),&gmsz,0 );
CHECK_CL
if ( type == CL_DEVICE_TYPE_GPU )
device_id = device;
printf( " %s %s with [%d units] localmem=%zu globalmem=%zu dims=%d(%zux%zux%zu) max workgrp sz %zu",units,lmem,gmsz,dims,wisz[0],wisz[1],wisz[2],wgsz );
哪个给我:
gfx1012 gfx1012,具有 [11个单位] localmem = 65536 globalmem = 8573157376 dims = 3(1024x1024x1024)max workgrp sz 256
11 的 CL_DEVICE_MAX_COMPUTE_UNITS 值令我担心。
我的系统装有Radeon RX 5500 XT,根据AMD网站和维基百科的说法,它应该具有22个计算单元。
为什么OpenCL会报告预期数量的一半,即11个计算单位,而不是22个?
lspci报告:
19:00.0 VGA compatible controller: Advanced Micro Devices,Inc. [AMD/ATI] Navi 14 [Radeon RX 5500/5500M / Pro 5500M] (rev c5) (prog-if 00 [VGA controller])
Subsystem: XFX Pine Group Inc. Navi 14 [Radeon RX 5500/5500M / Pro 5500M]
Flags: bus master,fast devsel,latency 0,IRQ 83,NUMA node 0
Memory at b0000000 (64-bit,prefetchable) [size=256M]
Memory at c0000000 (64-bit,prefetchable) [size=2M]
I/O ports at 7000 [size=256]
Memory at c5d00000 (32-bit,non-prefetchable) [size=512K]
Expansion ROM at c5d80000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: amdgpu
Kernel modules: amdgpu
并已安装AMD GPU PRO驱动程序。
OpenGL vendor string: Advanced Micro Devices,Inc.
OpenGL renderer string: Radeon RX 5500 XT
OpenGL core profile version string: 4.6.14752 Core Profile Context 20.30
OpenGL core profile shading language version string: 4.60
解决方法
对于AMD RDNA GPU,带有CL_DEVICE_MAX_COMPUTE_UNITS
的OpenCL报告双计算单元的数量(请参阅RDNA whitepaper,第4-9页)。顾名思义,每个双重计算单元包含2个计算单元。因此,您的硬件和驱动程序安装很好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。