소개

소개

소개

내 하이브리드 그래픽 노트북에서 CUDA를 작동시키려고 합니다. 나는 (l) 우분투 15.04를 사용하고 있습니다.

현재 아래에서 설명할 온라인 가이드의 몇 가지 단계를 따랐으며 optirun glxspheres64문제 없이 실행할 수 있습니다. 그러나 실행하면 optirun ./deviceQuery다음 오류가 발생합니다.

/usr/bin/vglrun: 246: exec: ./deviceQuery: Permission denied

온라인에는 이에 대한 정보가 없는 것 같습니다.

세부 사항

내가 따랐던 가이드는여기. 이것은 이제 꽤 오래되었고 Nvidia가 파일을 제공하는 형식을 변경했기 때문에 모든 단계를 정확하게 따르지는 않았습니다 .run.

나는 다음을 수행했습니다. (이것은 내 명령에 따른 것입니다 history.)

15  sudo apt-add-repository ppa:bumblebee/stable
16  sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
17  sudo apt-get update 
18  sudo apt-get install bumblebee
19  sudo apt-get install bumblebee bumblebee-nvidia 
20  sudo reboot

그런 다음 tty1에 로그인하고 x 서버를 중지한 다음 3을 초기화하세요.

21  cd Downloads/
22  chmod +x cuda_7.5.18_linux.run 
23  sudo ./cuda_7.5.18_linux.run

모든 기본 옵션이 포함된 실행 패키지를 설치하고 그래픽 드라이버 버전 352도 설치합니다.

그런 다음 PATH 변수를 설정합니다.

25  export PATH=/usr/local/bin:$PATH
26  export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
27  sudo ldconfig

다음 정적 연결 단계를 건너뛰었습니다. 샘플 코드를 컴파일할 때 링커 오류가 발생하지 않았으므로(또는 적어도 그런 것 같지는 않음) 이것이 필요하지 않은 것으로 추정됩니다. 또한 온라인의 다른 가이드에서도 이 단계를 본 적이 없습니다. 아마도 이것이 내가 잘못한 곳일까요?

그렇다면 일부 항목에는 분명히 OpenGL이 필요하므로 다음과 같습니다.

28  sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

샘플을 컴파일합니다.

30  cd NVIDIA_CUDA-7.5_Samples/
31  make

./deviceQuery그런 다음 Utilities 디렉토리에 있는 를 실행하려고 했습니다 . 이전에 실행되지 않는 것에 대해 본 오류가 발생했습니다 bumblebeed.

그래서:

34  sudo vim /etc/bumblebee/bumblebee.conf 

Driver=(비어 있던) 행을 로 변경 Driver=nvidia하고 행도 KernelDriver=nvidia-current로 변경합니다 KernelDriver=nvidia.

이 정보를 사용할 수 있습니다여기, 질문에 대한 (현재) 두 번째 답변을 참조하십시오.

여전히 작동하지 않았기 때문에 위의 링크된 질문에 대한 첫 번째 답변에 제공된 정보를 따라 시도하고 커널 헤더를 설치했습니다.

48  sudo apt-get install linux-headers-generic 
49  sudo reboot

만약 내가한다면:

54  sudo service bumblebeed status

나는 이제 다음을 얻습니다:

● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2015-10-11 13:15:07 BST; 20min ago
 Main PID: 1502 (bumblebeed)
   CGroup: /system.slice/bumblebeed.service
           └─1502 /usr/sbin/bumblebeed

Oct 11 13:16:20 P151EMx bumblebeed[1502]: [  163.019954] [WARN][XORG]....
Oct 11 13:16:20 P151EMx bumblebeed[1502]: [  163.019987] [WARN][XORG]....
Oct 11 13:16:20 P151EMx bumblebeed[1502]: [  163.020055] [WARN][XORG]....
Oct 11 13:17:11 P151EMx bumblebeed[1502]: rmmod: ERROR: Module nvidia...d
Oct 11 13:17:11 P151EMx bumblebeed[1502]: modprobe: FATAL: Error runn...a
Oct 11 13:17:22 P151EMx bumblebeed[1502]: [  225.439546] [WARN][XORG]....
Oct 11 13:17:22 P151EMx bumblebeed[1502]: [  225.439578] [WARN][XORG]....
Oct 11 13:17:22 P151EMx bumblebeed[1502]: [  225.439606] [WARN][XORG]....
Oct 11 13:17:23 P151EMx bumblebeed[1502]: rmmod: ERROR: Module nvidia...d
Oct 11 13:17:23 P151EMx bumblebeed[1502]: modprobe: FATAL: Error runn...a
Hint: Some lines were ellipsized, use -l to show in full.

하지만 여기에 여전히 몇 가지 문제가 있는 것 같습니다. 지금은 "활성" 상태이지만 이전에는 시작되지 않았지만 여전히 모든 것이 올바르게 작동하는 것은 아닙니다. 어떤 이유로 -l여기서 더 많은 정보를 제공하기 위해 작업할 수 있는 옵션을 얻을 수 없습니다 .

실행하면 optirun ./deviceQuery오류가 발생합니다.

/usr/bin/vglrun: 246: exec: ./deviceQuery: Permission denied

이제 어떻게 해야 하나요?

업데이트:

편집: 이 단계를 따르는 사람은 이 단계를 수행하지 않는 것이 좋을 수도 있습니다. 이 단계를 피하기 위해 CUDA 다음에 드라이버를 설치해 볼까요? 드라이버 버전 352를 설치한 후 다음을 수행하여 304로 되돌리는 것은 약간 불필요한 것 같습니다.

sudo apt-get install -reinstall nvidia-current링크된 질문에서 커널 헤더를 설치한 후 명령이 추가된 것을 확인했습니다 .

이 명령을 실행했는데 드라이버가 버전 304로 되돌아간 것 같습니다. 이제 재부팅되었습니다.

sudo service bumblebeed status

다음과 같은 출력을 제공합니다.

● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2015-10-11 13:46:53 BST; 38s ago
 Main PID: 659 (bumblebeed)
   CGroup: /system.slice/bumblebeed.service
           └─659 /usr/sbin/bumblebeed

Oct 11 13:46:53 edward-P151EMx systemd[1]: Started Bumblebee C Daemon.
Oct 11 13:46:53 edward-P151EMx systemd[1]: Starting Bumblebee C Daemon...
Oct 11 13:46:53 edward-P151EMx bumblebeed[659]: [   17.073332] [INFO]/usr/sb...d
Hint: Some lines were ellipsized, use -l to show in full.

그럼 해결된 것 같습니다. ./deviceQuery그러나 여전히 실행할 수 없습니다. 동일한 오류가 발생합니다.

sudo optirun ./deviceQuery
/usr/bin/vglrun: 246: exec: ./deviceQuery: Permission denied

도와주세요. 엘@엘

그런데 glxspheres는 여전히 작동합니다.

optirun glxspheres64

~270FPS를 얻으시나요?

답변1

컴퓨터를 다시 시작했는데 만세 작동 중입니다.

optirun ./deviceQuery

보고

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670MX"
  CUDA Driver Version / Runtime Version          7.5 / 7.5
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 3072 MBytes (3221028864 bytes)
  ( 5) Multiprocessors, (192) CUDA Cores/MP:     960 CUDA Cores
  GPU Max Clock rate:                            601 MHz (0.60 GHz)
  Memory Clock rate:                             1400 Mhz
  Memory Bus Width:                              192-bit
  L2 Cache Size:                                 393216 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.5, CUDA Runtime Version = 7.5, NumDevs = 1, Device0 = GeForce GTX 670MX
Result = PASS

그건 그렇고, 내가 시도한 마지막 단계가 실제로 필요하지 않은 것 같습니다. 위 질문의 정보를 따르면 다음을 시도하십시오.~ 아니다마지막 단계 수행:

  • 드라이버를 다시 설치합니다. 나는 이것이 필요하다고 생각하지 않습니다. 훨씬 이전 버전의 드라이버로 되돌아가기 때문에 짜증나는 일이기도 합니다. 질문의 정보를 따르는 사람이 이 단계를 수행하지 않고도 CUDA를 작동시킬 수 있는지 알고 싶습니다.

질문에 있는 정보는 설치하려는 모든 사람(그리고 나 자신)에게 매우 유용할 수 있다고 생각합니다.

  • CUDA 7.5(또는 CUDA 7)

Linux, 특히 우분투 관련 배포판에서;

  • 우분투, 주분투, 루분투, 우분투 메이트, 쿠분투,
  • 그리고 아마도 linux mint 17, linux mint 17.1 및 linux mint 17.2 [하지만 이전에 CUDA를 설치하려고 linux mint 17 및 linux mint 17.2에 문제가 있었던 적이 있습니다]
  • 아마도 데비안 배포판 중 하나일 것입니다. (지금은 데비안 8을 사용하고 있지만 아마도 데비안 7이나 debain 6도 사용할 수 있을 것입니다.)

Linux용 CUDA를 설정하기 위해 웹에 있는 많은 가이드가 오래된 버전의 Linux 또는 오래된 버전의 CUDA에 대한 것이므로 이러한 모든 배포판에서 이 답변을 테스트하려는 의도입니다.

이 작업을 수행하는 데 시간이 좀 걸리겠지만 곧 해보도록 하겠습니다.

또한 누군가가 기여하고 싶다면 이 답변을 커뮤니티 위키로 변경할 수도 있습니다.

업데이트를 계속 확인하세요. 모든 의견은 아래 댓글로 알려주세요.

관련 정보