Hello.
I'm running proxmox VE 7.1 on an Athlon 5350. The motherboard - Asrock AM1H-ITX - doesn't seem to support IOMMU, so I was wondering if I could get OpenCL working in an LXC container, with kernel-side parts installed in proxmox, and userspace parts installed in the container.
The driver downloads on AMD website navigate me only to the ancient fglrx driver for ubuntu 14.04 (I have sucessfully used those, ages ago), and the ROCm project claims not to support this APU. I eventually found the amdgpu-install tool, which I downloaded from the radeon repo and installed. Then -
- In the hypervisor, I installed amdgpu-dkms (and -firmware), amdgpu-pro-core - this succeeded, and the module successfully loaded. (dmesg)
- In the container, I installed clinfo-amdgpu-pro opencl-legacy-amdgpu-pro-icd and clinfo
At this point clinfo reports that it finds the AMD platform, but no devices for it:
# clinfo
Number of platforms 1
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.1 AMD-APP (3380.4)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Host timer resolution 1ns
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] No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No devices found in platform
I also ran clinfo through strace, for which the output I put here. Any suggestions on how to proceed? (Or explanation why it won't work - I haven't found a list of supported hardware for the "legacy opencl", and my experience with LXC containers is limited, so I'm not sure if that introduces the limitations)
Possible culprits:
- ioctl(6, DRM_IOCTL_SET_CLIENT_CAP, 0x7ffe18420890) = -1 EOPNOTSUPP (Operation not supported) - I don't know, is this supposed to succeed on the hardware?
- There's a ton of attempts to load libamdocl64.so - I don't have this library and have no idea which package should provide this, as even apt-file doesn't find any matches.