저는 Linux Mint 시스템에서 PyOpenCL과 PyCUDA를 실행하려고 노력해 왔습니다. 뭔가를 설치했지만 데모 스크립트가 다음 오류와 함께 실패합니다.
pyopencl.cffi_cl.LogicError: clgetplatformids failed: PLATFORM_NOT_FOUND_KHR
구성
$ uname -a && cat /etc/lsb-release && lspci | grep NV
Linux 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
01:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 730] (rev a1)
관련 설치 패키지:
libcuda1-352-updates
libcudart5.5:amd64
nvidia-352-updates
nvidia-352-updates-dev
nvidia-cuda-dev
nvidia-cuda-toolkit
nvidia-opencl-icd-352-updates
nvidia-profiler
nvidia-settings
ocl-icd-libopencl1:amd64
ocl-icd-opencl-dev:amd64
opencl-headers
python-pycuda
python-pyopencl
python3-pycuda
python3-pyopencl
연구
여기에 적절한 링크를 모두 게시할 수는 없으므로,이 문제를 해결하려는 이전 시도를 반영하는 링크는 관련 스택 오버플로 게시물을 참조하세요.
한 기사에서는 패키지 관리자가 설치한 opencl/cuda 구현이 특정 기호 링크를 올바르게 설정하지 않는 시나리오를 설명합니다. 이 문제는 내 시스템에 존재하지 않는 것 같습니다.
그래픽 드라이버(nvidia-340)와 nvidia-opencl 패키지(352) 사이에 버전 번호가 일치하지 않습니다. 그래픽 드라이버를 업데이트했지만 nvidia-352-updates-dev
문제가 지속됩니다.
Arch Linux에는 필요한 장치 파일을 생성하지 않는 것과 관련된 것으로 보이는 버그가 있습니다. 하지만 확인했고 존재하며 권한이 있으므로 /dev/nvidia0
액세스 할 수 있어야 합니다./dev/nvidiactl
666
또 다른 Stackoverflow 게시물에서는 루트로 데모를 실행할 것을 제안합니다. 나는 이것을 시도했지만 동작은 변하지 않습니다.
cuda/opencl의 이전 설치 지침에서는 NVidia 웹사이트에서 직접 드라이버를 다운로드하라고 되어 있었습니다. 결과에 대한 업데이트는 게시물 끝부분에서 다시 확인하세요(재앙적이었습니다).
다른 Linux 시스템의 ATI 카드에서도 동일한 오류가 보고되었으며 올바른 파일 을 /usr/lib/OpenCL/vendors
./etc/OpenCL/vendors/nvidia.icd
libnvidia-opencl.so.1
이 버그는 OSX에서 발견되었지만 원인은 관련이 없습니다. OSX의 PyCUDA에 대한 유사한 오류 메시지도 관련이 없는 것 같습니다.
이 오류는 X가 로드되지 않으면 장치 파일이 초기화되지 않기 때문에 원격 액세스에서 발생할 수 있습니다. 그러나 데스크톱 환경에서 이것을 테스트하고 있습니다. 또한 확실히 하기 위해 이 스레드에 제안된 수동 명령을 실행했는데 관련 /dev
항목이 이미 존재하므로 중복됩니다.
어떤 사람들은 작업을 시작하기 위해 이러한 예제를 몇 번 실행하거나 sudo로 실행하는 것을 권장합니다. 이것은 도움이 되지 않는 것 같습니다.
기사에서는 cuInit failed: no device
그룹에 사용자가 없기 때문에 유사한 CUDA 오류가 어떻게 발생할 수 있는지 설명합니다 video
. 확인하기 위해 달렸 usermod -a -G video $USER
지만 문제가 해결되지 않았습니다.
과거에는 정기 업데이트로 인해 CUDA 지원이 중단되었습니다. 패키지 버전 번호의 모든 순열을 탐색하는 데 시간을 들이지 않았으며 일부 패키지를 다운그레이드하면 변경될 수 있습니다. 그러나 문제의 원인에 대한 더 이상의 직관이 없으면 이 작업에 시간을 투자하지 않을 것입니다. 왜냐하면 이것이 효과가 있을지 모르기 때문입니다.
이 오류에 대한 가장 일반적인 Google 검색 결과는 PyOpenCL 목록에 있는 간략하고 해결되지 않은 이메일 스레드입니다. 이 스레드는 검색 결과의 첫 페이지에 여러 사이트에서 4번 나타납니다. /dev/nvidia0
권한 비트의 합을 확인하는 것이 좋습니다 . /dev/nvidiactl
내 컴퓨터에서는 user/group/other
모든 장치가 이러한 장치에 대한 읽기 및 쓰기 액세스 권한을 갖고 있으므로 이것이 문제의 원인이라고 생각하지 않습니다.
또한 저장소의 버전을 사용하는 대신 최신 소스에서 PyOpenCL을 빌드하고 설치해 보았습니다. 이는 초기 단계에서 실패하여 올바르게 빌드되지 않았음을 나타냅니다.
일반화하다
문제는 PyCUDA/PyOpenCL이 그래픽 카드를 찾을 수 없다는 것 같습니다. 이 문제를 일으킬 수 있는 몇 가지 알려진 문제가 있지만 그 중 아무 것도 적용되지 않는 것 같습니다. 뭔가 빠진 것이 있는데 어떻게 해야 할지 모르겠습니다.
추가 업데이트
NVidia에서 직접 다운로드한 deb에서 재설치를 시도했지만 cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
설치되지 않는 것 같습니다. deviceQuery 명령도 찾을 수 없습니다. 실행 파일에서 다시 설치를 시도했습니다 cuda_7.5.18_linux.run
. 설치 프로그램에서 내 컴퓨터의 구성이 지원되지 않는다고 말합니다. 아무튼 최후의 노력을 다했습니다. 실제로 이제 X 구성이 완전히 손상되어 시스템이 로그인 화면으로 부팅할 수 없습니다. 나는 이것을 고칠 수 없다.