我已经使用基于 Intel Atom 的简单 CPU 和 AMD RX Vega 56 GPU 设置了一台 Intel 机器。
我想在 GPU 上创建满负载,并尝试我的一些 OpenCL/C 程序。 (我也想使用 hashcat。)
我安装了Ubuntu 16.04 Server,因为AMDGPU-Pro驱动程序仅与此版本兼容。我按照安装说明并使用了./amdgpu-pro-install -y -opencl=rom
参数。至此已经安装成功。我还安装了 ocl-icd-dev、clinfo、opencl-headers 包和 mesa-ocl- 或类似的东西。
为了尝试它是否有效,我刚刚尝试了“clinfo”命令。提供以下输出:
root@atomium:/home/chairman/opencl-experiments/tools-master# clinfo
Number of platforms 1
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.0 AMD-APP (2117.10)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Extensions function suffix AMD
Platform Name AMD Accelerated Parallel Processing
Number of devices 0
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform
clCreateContext(NULL, ...) [default] No platform
clCreateContext(NULL, ...) [other] <error: no devices in non-default plaforms>
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No platform
所以我从这个存储库克隆了一些 OpenCL 示例来使用另一种方式进行检查。
https://github.com/rsnemmen/OpenCL-examples
我可以立即编译它,但是在执行时,我收到以下错误:
root@atomium:/home/chairman/opencl-experiments/tools-master# ./print-devices
platform 0: vendor 'Advanced Micro Devices, Inc.'
*** 'clGetDeviceIDs' in 'cl-helper.c' on line 134 failed with error 'device not found'.
Aborted (core dumped)
我发现有些人在使用 hashcat 时遇到了类似的问题,但没有找到简化的通用解决方案。
也许有人可以指出如何继续解决此问题的一些步骤。 (我更喜欢使用 OpenCL。)