OpenCL로 할 수있는 멋진 것들을 동료에게 보여 주려고했으나 임원이 그녀의 컴퓨터에서 실행되지 않습니다. 일부 libopencl.so
(또는 이와 유사한) 파일이 누락되었습니다 (예 : 그녀는 OpenCL이 설치되지 않았습니다). 그래서 아마도 다소 기본적인 (리눅스) 질문은, 내 작은 C
+ OpenCL
프로그램이 OpenCL 없이도 컴퓨터에서 실행될 수있는 모든 필요한 so
파일을 어떻게 포함시킬 수 있습니까?OpenCL 라이브러리를 포함하여 독립 실행 형 응용 프로그램을 만드는 방법은 무엇입니까?
답변
Damon의 의견에 이미 언급했듯이 각 종류의 장치에는 자체 공급 업체가 있고 해당 공급 업체에는 자체 OpenCL 구현이 있기 때문에 일반적인 방법으로는 불가능합니다. 그러나, 당신이하고 싶은 것이 단순히 대부분의 리눅스 컴퓨터에서 실행될 OpenCL 응용 프로그램의 "휴대용"사본을 가지고 있다면 그것을 달성 할 수있는 방법이 있습니다.
AMD APP SDK (현재 버전 2.4)를 다운로드하십시오. 필자는 64 비트 버전을 가정하고 있지만 32 비트 또는 다른 버전 번호와 거의 동일해야하며 해당 문자열을 변경하면됩니다.
응용 프로그램 실행 파일의 하위 디렉토리로 SDK를 추출하십시오. 따라서 애플리케이션이 $ HOME/myapp에있는 경우 SDK 파일은 $ HOME/myapp/AMD-APP-SDK-v2.4-lnx64에 있어야합니다.
ICD 파일을 icd-registration.tgz 아카이브에서 icd라는 폴더로 추출하십시오. 따라서 $ HOME/myapp/AMD-APP-SDK-v2.4-lnx64/icd/amdocl32.icd (및 amdocl64.icd)가 있어야합니다.
이제 우리는 대부분의 x86 프로세서에서 작동하는 AMD APP SDK의 휴대용 설치 작업을 수행했습니다. 응용 프로그램을 시작하기 전에 적절한 환경 변수를 설정하기 만하면됩니다. 나는 GNU/Linux 사용자가 아니기 때문에 bash에 대해 잘 모르기 때문에 휴대용 디렉토리에 대한 경로를 하드 코드했습니다. 아마도 현재 위치를 자동으로 가져 오는 것이 가능할 것입니다. 이는 분명 훨씬 더 좋을 것입니다.
#!/bin/bash
DIRECTORY=$HOME/myapp
export OPENCL_VENDOR_PATH=$DIRECTORY/AMD-APP-SDK-v2.4-lnx64/icd
export AMDAPPSDKROOT=$DIRECTORY/AMD-APP-SDK-v2.4-lnx64
export LD_LIBRARY_PATH=$AMDAPPSDKROOT/lib/x86_64:$LD_LIBRARY_PATH
./myapp
위의 스크립트는 응용 프로그램의 루트 디렉토리 (예 : $ HOME/myapp/scriptname)에 있어야합니다. 따라서 ./scriptname을 사용하여 이식 가능한 응용 프로그램을 시작할 수 있습니다. 위의 스크립트가 프로그램에 대한 인수를 처리하고 스크립트 위치를 자동으로 파악하는 것은 훨씬 더 좋을 것입니다. 그러나이를 수행하는 일반적인 방법을 보여 주어야합니다.
안녕 Quantumboredom, 노력을 기울여 주셔서 감사합니다. NVIDIA를 사용하여 개발했지만 NVIDIA SDK에 단계를 적용하려고 노력할 것입니다. – Framester
Nvidia 카드가 없지만 AFAIK Nvidia는 CUDA/OpenCL 런타임 구성 요소를 해당 드라이버와 번들로 제공하며 OpenCL이 Nvidia GPU에서 작동하려면 Nvidia의 드라이버를 설치해야하므로이 방법은 없습니다. 응용 프로그램을 Nvidia GPU에서 실행하려면 Nvidia의 드라이버를 정상적으로 설치해야합니다. 그러나 Nvidia의 OpenCL SDK를 사용하여 개발되고 컴파일 된 OpenCL 응용 프로그램은 필자가 설명한 것처럼 (그러나 분명히 대신 CPU를 사용하는) 휴대용 솔루션에서 실행해야합니다. – Quantumboredom
- 1. Java 응용 프로그램을 독립 실행 형으로 만드는 방법은 무엇입니까?
- 2. 독립 실행 형 응용 프로그램이란 무엇입니까?
- 3. 완전 독립 실행 형 GUI 응용 프로그램
- 4. PHP 독립 실행 형 응용 프로그램
- 5. 파이썬에서 독립 실행 형 응용 프로그램
- 6. 독립 실행 형 구성 요소를 만드는 ROR
- 7. 의존성을 포함하여 파이썬 응용 프로그램을 번들하는 방법은 무엇입니까?
- 8. Java 독립 실행 형 응용 프로그램을 웹에 통합
- 9. 독립 실행 형 디버그 창?
- 10. Linux의 독립 실행 형 파이썬 응용 프로그램
- 11. ecouch 라이브러리를 사용하여 Couchdb에 독립 실행 형 첨부 파일 저장
- 12. WebDev.WebServer.exe를 독립 실행 형 응용 프로그램으로 설치하는 방법은 무엇입니까?
- 13. 독립 실행 형 xulrunner 응용 프로그램을 패키지하는 방법
- 14. Java 독립 실행 형 응용 프로그램을 사용하여 SSL 연결
- 15. 다른 OS에서 독립 실행 형 응용 프로그램을 테스트하는 방법
- 16. 독립 실행 형 SWT 응용 프로그램에서 IMarker를 만드는 방법
- 17. IDE에서 독립 실행 형으로 웹 응용 프로그램을 이동하는 방법은 무엇입니까?
- 18. cmake를 사용하여 독립 실행 형 프로그램을 만들고 싶습니다.
- 19. 현재 응용 프로그램에서 독립 실행 형 응용 프로그램을 실행하는 방법은 무엇입니까?
- 20. 사전 요구 사항을 설치하지 않고도 Windows 용 독립 실행 형 프로그램을 만드는 가장 좋은 방법은 무엇입니까?
- 21. 플렉스 독립 실행 형 응용 프로그램에 사용할 데이터베이스는 무엇입니까?
- 22. 독립 실행 형 응용 프로그램에서 Infopath 양식
- 23. WCF 콘솔 응용 프로그램 독립 실행 형/독립 실행 형 서비스
- 24. 독립 실행 형 Acceleo 생성기
- 25. 독립 실행 형 JdcbTemplate 사용
- 26. 디버그 모드에서 독립 실행 형 응용 프로그램으로 Windows 서비스 실행
- 27. Windows 용 독립 실행 형 Java 실행 파일을 만드는 방법은 무엇입니까?
- 28. IIS - 하위 디렉토리에 독립 실행 형 응용 프로그램을 설치하는 방법은 무엇입니까?
- 29. 독립 실행 형 응용 프로그램에 대한 무료 언어/데이터베이스
- 30. Zend_filter_input 독립 실행 형 사용
적어도 원격으로 이식 가능하거나 신뢰할 수있는 방법이 아닙니다. OpenCL은 다양한 하드웨어 구성 요소에서 (그리고 이질적으로도) 실행될 수 있기 때문에 대상 시스템에 OpenCL이 제대로 설치되어 있어야합니다. _some library_를 복사하는 것으로는 충분하지 않습니다. 종종 OpenCL은 디스플레이 드라이버와 함께 "보너스 설치"로 제공됩니다. 그렇지 않은 경우 친구는 최후의 수단으로 AMD에서 자유롭게 사용할 수있는 x86 소프트웨어 구현 (스트림 SDK 검색)을 설치할 수 있습니다. – Damon