nVidia 개별 카드 / Intel 통합 그래픽이있는 랩톱에서 nVidia CUDA 또는 OpenCL을 작동 시키려면 어떻게해야합니까?


28

배경 : 저는 취미로 3D 아티스트이며 최근에 Windows 7에서 듀얼 부팅으로 Ubuntu 12.04 LTS를 사용하기 시작했습니다. nVidia GeForce GT 540M GPU가 장착 된 상당히 새로운 64 비트 Toshiba 노트북에서 그래픽 카드). 그러나 인텔 통합 그래픽 (우분투가 사용하고 있다고 생각합니다)이 있습니다.

따라서 3D 장면을 Windows의 이미지로 렌더링 할 때 CPU 또는 nVidia GPU 중 더 빠른 것을 선택할 수 있습니다. 3D 응용 프로그램에서 CUDA 또는 OpenCL을 사용하도록 GPU를 설정할 수 있습니다. 우분투에는 GPU 옵션이 없습니다.

Linux 및 nVidia Optimus 기술 관련 문제에 대해 너무 많은 연구를 한 후에, 나는 약간 더 깨달았지만 훨씬 더 혼란스러워했습니다.

배터리 수명이 결코 문제가되지 않기 때문에 Optimus 기술에 대해서는 조금 신경 쓰지 않습니다.

여기 내 질문이 있습니다 : Ubuntu의 nVidia GPU에서 CUDA 활용 프로그램 (예 : 블렌더)을 사용하려면 어떻게해야합니까? nVidia 드라이버가 필요합니까? (리눅스에서 Optimus 설정으로 잘 작동하지 않는다고 들었습니다.) 우분투의 GPU에서 OpenCL을 사용하는 방법이 적어도 있습니까?

답변:


27

방금 실험을 마쳤으며 CUDA에 Bumblebee가 필요하지 않다는 Eric Appleman의 진술을 확인할 수 있습니다. ( Bumblebee 에 대한 자세한 내용 : Optimus 기술이 적용된 NVIDIA GeForce는 Ubuntu에서 지원됩니까? )

당신이 그래픽의 예에서 OpenGL을 사용하여 표시해야합니다 때, 당신은 그렇지 않으면 당신이 중 하나를 디스플레이에 아무것도를 참조하거나 오류가 발생하지 않는, 옵티머스 시스템 땅벌 같은 필요 뭔가를 :

ERROR: Support for necessary OpenGL extensions missing.

CUDA 프로그램을 실행할 때 CUDA 툴킷과 nvidia 드라이버를 설치해야합니다. 프로그램을 컴파일하려면 SDK도 필요합니다. 설치 프로그램은 http://developer.nvidia.com/cuda-downloads 에서 찾을 수 있습니다 . Optimus 랩탑을 시작하기 전에 아래 지침을 읽으십시오.

CUDA 설치

운전사

우분투의 패키지 관리자에서 nvidia 드라이버를 설치하는 것이 좋습니다. Bumblebee를 설치하면 드라이버에 대해 걱정할 필요가 없습니다. 그렇지 않으면 설치 후 https://askubuntu.com/a/107746/6969에 설명 된대로 nvidia 라이브러리를 비활성화 하십시오 . 그렇게하지 않으면 3D 가속이 느슨해 져서 저해상도에 빠질 수 있습니다.

툴킷

기본적으로 설치 프로그램을 다운로드하여 실행 가능하게 만들고 실행해야합니다. -설치 프로그램을 다운로드하십시오. 이 글을 쓰는 시점에서 4.2.9가 가장 최신 드라이버입니다. 64 비트 OS이므로 64 비트 11.04 Ubuntu 패키지를 사용합니다 (12.04를 실행 중임에도 불구하고) /usr/local/cuda.

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

CUDA 설치 위치를 묻는 설치 메시지가 나타나면 Enter를 눌러 기본값을 수락하십시오 /usr/local/cuda.

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

설치 후, cuda 라이브러리 디렉토리를 라이브러리 검색 경로에 넣도록 제안하는 몇 가지 메시지가 인쇄됩니다.

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

원하는 경우이 단계를 건너 뛸 수 있지만 LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH나중에 프로그램을 실행할 때 설정 해야합니다.

SDK

CUDA 애플리케이션을 컴파일하려면 위에서 설명한 것과 유사한 방식으로 SDK를 설치할 수 있습니다. 다운로드하여 실행 가능하게 만들고 실행하십시오 (예 : sudo! 없이 루트가 아님 ). 그것의 일부를 컴파일 할 때, 나는 약간 변경해야했습니다 NVIDIA_GPU_Computing_SDK/C/common/common.mk.

  • 189 행에 대해 다음을 OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu추가하십시오.

    OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
    
  • 대한 라인 (271), 스왑 후 ${RENDERCHECKGLLIB}${OPENGLLIB}이 같다고 같은 :

    LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
    
  • 몇 줄을 더 똑같이하더라도 제거하십시오 -lcuda.
  • 몇 줄 더 나아가서 271 행에서했던 것과 똑같이하십시오.

CUDA 사용

CUDA는 nvidia 기반 X 서버가 필요하지 않습니다. 이 경우 다음과 같은 임의 테스트 프로그램을 실행할 수 있습니다.

LD_LIBRARY_PATH = / usr / lib / nvidia-current : / usr / lib32 / nvidia-current : $ LD_LIBRARY_PATH someComputallyIntensiveProgram

라이브러리 경로에 CUDA를 추가하지 않은 경우 다음이 필요합니다.

LD_LIBRARY_PATH = / usr / lib / nvidia-current : / usr / lib32 / nvidia-current : / usr / local / cuda / lib64 : / usr / local / cuda / lib : $ LD_LIBRARY_PATH someComputallyIntensiveProgram

프로그램이 64 비트 인 경우 32 비트 경로를 제거 할 수 있습니다.

CUDA 프로그램에 OpenGL을 사용하여 표시 할 것이 있으면 optirun을 사용해야합니다.

 optirun blender

또는 CUDA를 기본 경로에 추가하지 않은 경우 :

LD_LIBRARY_PATH = / usr / local / cuda / lib64 : / usr / local / cuda / lib : $ LD_LIBRARY_PATH 옵티 런 블렌더


감사합니다. 현상금을 수여합니다 (하지만 커뮤니티 Wiki 답변은 수락하겠습니다).
피터 카 세타

또한 100 명의 대표와 공감대가 Bumblebee 프로젝트에 대한 귀하의 작업에 대해 얼마나 고마움을 표현하는지 정확하게 표현하지 못합니다. 당신과 당신의 동료들은 그것을 훌륭한 소프트웨어로 만들었습니다. 감사합니다 :)
Peter Cassetta

2
다행입니다. 이제 업데이트 된 xorg + mesa (또는 Wayland?) 스택을 사용하여 PRIME 형식의 최종 솔루션으로 시간을
보내실 수 있기를 바랍니다.

1
PRIME , Xorg는 그래픽 표시를 담당하는 디스플레이 서버, Mesa는 OpenGL, Wayland 는 Xorg의 후속 제품입니다.
Lekensteyn

1
CUDA에는 최소 NVIDIA 드라이버가 필요합니다. 예를 들어, CUDA 6.5에는 최소한 NVIDIA 340.21이 필요합니다.
Yamaneko

15

다음은 완전한 답변입니다 ( Alex FalappaLekensteyn의 답변을 바탕으로 함 ).

우분투에서 CUDA를 실행하기 위해 nVidia Optimus GPU를 얻을 수 있습니다.

CUDA에는 범블비가 필요하지 않습니다. ( Bumblebee 에 대한 자세한 내용 : Optimus 기술이 적용된 NVIDIA GeForce는 Ubuntu에서 지원됩니까? )

당신이 그래픽의 예에서 OpenGL을 사용하여 표시해야합니다 때, 당신은 그렇지 않으면 당신이 중 하나를 디스플레이에 아무것도를 참조하거나 오류가 발생하지 않는, 옵티머스 시스템 땅벌 같은 필요 뭔가를 :

ERROR: Support for necessary OpenGL extensions missing. 

Blender와 같은 그래픽 집약적 프로그램을 사용해야하는 경우 Bumblebee가 현재 사용하는 것이 좋습니다.

Bumblebee를 설치하지 않으려면 (즉, OpenGL이 필요하지 않은 경우) CUDA 설치로 건너 뜁니다 .
그렇지 않으면 계속 읽으십시오.

땅벌 설치

의 지시에 따라 잘 엔비디아 옵티머스 작업과 노트북을 어떻게?

이들은 현재 Bumblebee 개발자에 의해 최신 상태로 유지됩니다.

Bumblebee를 설치하고 재부팅하면 프로그램을 사용하여 optirun프로그램을 시작할 때 사용할 그래픽 카드를 선택할 수 있습니다 .
예를 들면 다음과 같습니다.

optirun blender

모든 것이 올바르게 작동하는지 빠르게 테스트하려면 다음을 사용하십시오.

optirun glxspheres

모든 것이 올바르게 작동하면 다채로운 회전 구체가있는 프로그램이 표시됩니다.

터미널의 GL 공급 업체 문자열에 단어 nvidia 가 포함되어 있는지 확인하십시오 .
만 실행 glxspheres하면 공급 업체 문자열에 인텔 카드가 포함 된 것을 볼 수 있습니다.

CUDA 프로그램을 실행할 때 CUDA 툴킷과 nvidia 드라이버를 설치해야합니다. 프로그램을 컴파일하려면 SDK도 필요합니다. 설치 프로그램은 http://developer.nvidia.com/cuda-downloads 에서 찾을 수 있습니다 . Optimus 랩탑을 시작하기 전에 아래 지침을 읽으십시오.

CUDA 설치

운전사

우분투의 패키지 관리자에서 nvidia 드라이버를 설치하는 것이 좋습니다. Bumblebee를 설치하면 드라이버에 대해 걱정할 필요가 없습니다. 그렇지 않으면 설치 후 https://askubuntu.com/a/107746/6969에 설명 된대로 nvidia 라이브러리를 비활성화 하십시오 . 그렇지 않으면 3D 가속이 손실되고 해상도가 낮아질 수 있습니다.

툴킷

기본적으로 설치 프로그램을 다운로드하여 실행 가능하게 만들고 실행해야합니다. -설치 프로그램을 다운로드하십시오. 2013 년 1 월 9 일 현재 5.0.35가 가장 최신 드라이버입니다. 64 비트 OS이므로 64 비트 11.10 Ubuntu 패키지를 사용합니다 (12.10을 실행 중임에도 불구하고) /usr/local/cuda.

chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run

CUDA 설치 위치를 묻는 설치 메시지가 나타나면 Enter를 눌러 기본값을 수락하십시오 /usr/local/cuda.

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

설치 후, cuda 라이브러리 디렉토리를 라이브러리 검색 경로에 넣도록 제안하는 몇 가지 메시지가 인쇄됩니다.

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

원하는 경우이 단계를 건너 뛸 수 있지만 LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH나중에 프로그램을 실행할 때 설정해야합니다 .

SDK

CUDA 애플리케이션을 컴파일하려면 위에서 설명한 것과 유사한 방식으로 SDK를 설치할 수 있습니다. 다운로드하여 실행 가능하게 만들고 실행하십시오 (예 : sudo! 없이 루트가 아님 ).

CUDA 사용

CUDA는 nvidia 기반 X 서버가 필요하지 않습니다. 이 경우 다음과 같은 임의 테스트 프로그램을 실행할 수 있습니다.

LD_LIBRARY_PATH = / usr / lib / nvidia-current : / usr / lib32 / nvidia-current : $ LD_LIBRARY_PATH someComputallyIntensiveProgram

라이브러리 경로에 CUDA를 추가하지 않은 경우 다음이 필요합니다.

LD_LIBRARY_PATH = / usr / lib / nvidia-current : / usr / lib32 / nvidia-current : / usr / local / cuda / lib64 : / usr / local / cuda / lib : $ LD_LIBRARY_PATH someComputallyIntensiveProgram

프로그램이 64 비트 인 경우 32 비트 경로를 제거 할 수 있습니다.

CUDA 프로그램에 OpenGL을 사용하여 표시 할 것이 있으면 optirun을 사용해야합니다.

 optirun blender

또는 CUDA를 기본 경로에 추가하지 않은 경우 :

LD_LIBRARY_PATH = / usr / local / cuda / lib64 : / usr / local / cuda / lib : $ LD_LIBRARY_PATH 옵티 런 블렌더

블렌더 빌드 설치

(사전 컴파일 된 CUDA 커널 사용)

를 실행하면 optirun blenderBlender에서 CUDA 커널 컴파일이 실패했다는 메시지와 터미널에 다음과 유사한 메시지가 표시 될 수 있습니다.

Compiling CUDA kernel ...
nvcc warning : Option '--opencc-options (-Xopencc)' is obsolete and ignored, when
targeting compute_20, sm_20, or higher
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
CUDA kernel compilation failed, see console for details.

블렌더의 GPU 렌더링 기능을 사용하려면 사전 컴파일 된 CUDA 커널로 블렌더 빌드가 필요할 수 있습니다. Blender.org의 빌드 에는 모두 미리 컴파일 된 CUDA 커널이 있습니다. ppa : cheleb / blender-svn 빌드 ( 이 질문에 대한 자세한 정보 )는 그렇지 않습니다.

공식 Blender 빌드를 설치하려면 이 답변 에 나와있는 지침을 따르십시오 .

에 Blender를 설치 한 경우 /usr/lib/blender터미널에서 Blender를 실행하고 GPU 렌더링을 다음과 같이 사용할 수 있습니다.

 optirun '/usr/lib/blender/blender'

Bumblebee / stable PPA에서 설치 한 Bumblebee의 최신 버전에는 usermod명령이 필요하지 않습니다 . askubuntu.com/a/36936/6969 의 설치 지침을 계속 업데이트하므로 설치 지침을 복사하는 대신 해당 게시물에 링크하십시오.
Lekensteyn

@Lekensteyn 알았어!
피터 카 세타

2

Linux에서 하이브리드 그래픽 (일반적으로 Intel 통합 그래픽 및 Nvidia 개별 그래픽) 지원은 현재 약간 번거 롭습니다. X 서버 필드에서 무언가가 천천히 움직이고 있지만 숨을 멈추지 마십시오.

짐작했듯이 Bumblebee는 현재 좋은 방법입니다.

최근 Intel / Nvidia 그래픽이 포함 된 Asus N55 랩톱을 구입하여 Blender Cycles 렌더러에서 CUDA를 사용할 수있었습니다.

Ubuntu 12.04를 설치하면 기본적으로 인텔 그래픽 드라이버를 통해 통합 그래픽을 사용했습니다. noveau 그래픽 드라이버를 설치하지 않아야합니다.

그런 다음 터미널을 열고 다음을 수행했습니다.

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

그 후 (설치 지침에서 권장하는대로) 다음을 수행하십시오.

sudo usermod -a -G bumblebee $USER

그런 다음 재부팅했습니다.

프로그램을 시작할 때 사용할 드라이버를 선택하려면 다음과 같이 optirun 프로그램을 사용하십시오.

optirun blender

모든 것이 올바르게 작동하는지 테스트하려면 다음을 사용하십시오.

optirun glxspheres

GL 공급 업체 문자열에 Nvidia라는 단어가 포함되어 있는지 확인하십시오. 대신 실행하는 경우 :

glxspheres

공급 업체 문자열에는 인텔 단어가 포함되어야합니다


Bumblebee를 설치하기 전에 nVidia 드라이버를 설치해야합니까? 나는 당신이 당신의 대답을 어떻게 말했는지에 따라 추측하지 않습니다. 또한 누군가가 우분투에서 CUDA를 Optimus 카드와 함께 사용할 수 있다는 것을 알게되어 기쁩니다! 15 명을 받으면 바로 투표하겠습니다. :)
Peter Cassetta

좋아, 나는 Bumblebee를 설치했다. 내가 사용 optirun하고 난 블렌더는 3D 뷰포트를 렌더링하는 내 엔비디아 GPU를 사용하는 것을 확인할 수 있습니다. 그러나 블렌더 사용자 기본 설정의 드롭 다운에는 "GPU"옵션이 없습니다. "CPU"만 나열됩니다. 참조 스크린 샷을 . CUDA를 사용하려면 추가 드라이버를 설치해야합니까?
피터 카 세타

1

난 당신의 드라이버 295.40 설치해야, 즉 꿀벌을 사용하여, CUDA의 모든 예제를 실행하기 위해 찾아 여기를 설치하는 동안 무시하지 않도록 선택할 수config x11.

그런 다음 동일한 드라이버를 사용하여 예제를 컴파일하고 프로그램을 실행해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.