요약

요약

저는 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 검색 결과는 검색 결과의 첫 페이지에 여러 사이트에서 4번 나타나는데, PyOpenCL 목록에 있는 짧고 해결되지 않은 이메일 스레드입니다. /dev/nvidia0및 에 대한 권한 비트를 확인하는 /dev/nvidiactl것이 좋습니다. 내 컴퓨터에서는 user/group/other모두 이러한 장치에 대한 읽기 및 쓰기 액세스 권한을 갖고 있으므로 그것이 문제의 원인이라고 생각하지 않습니다.

또한 리포지토리에 있는 버전을 사용하는 대신 최신 소스에서 PyOpenCL을 빌드하고 설치해 보았습니다. 이것은 초기 단계에서 실패하고 있으며 이는 올바르게 구축되지 않았다는 것을 의미합니다.

요약

문제는 PyCUDA/PyOpenCL이 그래픽 카드를 찾을 수 없다는 것 같습니다. 이 문제를 일으킬 수 있는 몇 가지 알려진 문제가 있지만 여기에는 그 중 아무 것도 적용되지 않는 것 같습니다. 뭔가 빠진 것이 있는데 어떻게 해야 할지 잘 모르겠습니다.

추가 업데이트

NVidia에서 직접 다운로드한 deb에서 재설치를 시도했지만 cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb설치되지 않는 것 같습니다. 심지어 deviceQuery 명령도 찾을 수 없었습니다. runfile에서 다시 설치하려고 했습니다 cuda_7.5.18_linux.run. 설치 프로그램에서 내 컴퓨터의 구성이 지원되지 않는다고 표시했습니다. 어쨌든 나는 최후의 노력으로 진행했습니다. 실제로 이제 X 구성이 완전히 손상되어 시스템이 로그인 화면으로 부팅할 수 없습니다. 이거 수리 못했어요.

관련 정보