문제

나는 프로젝트에서 일부 매트릭스 계산 속도를 높이기 위해 GPU (NVIDIA Quadro NVS140M)의 힘을 활용하려고합니다. 일부 문서 (프로그래밍 안내서, 모범 사례 가이드 및 참조 설명서)를 읽고 있지만 어떤 섹션에 집중 해야하는지 확실하지 않습니다. 이것에 대한 조언을받을 수 있다면 좋을 것입니다.

또한 Cublas.net과 같은 타사 유지 관리 SDK가 있는지 궁금합니다. 이는 Cublas의 기능을 고수하기 전에 Cublas 개발 프로세스를 단순화하여 프로젝트를 통해 목표를 달성하는 데 도움이 될 수 있습니다. 다시 말하지만, 의견에 미리 감사드립니다.

도움이 되었습니까?

해결책

Cuda Toolkit & SDK 다운로드와 함께 제공되는 대부분의 문서는 Cuda에 관한 것이며, 구체적으로는 Cuba에 관한 것입니다. 시작하십시오 CUBLAS_Library_2.3.pdf Cublas를 사용하려는 경우 파일 자체 Cuda 커널을 작성할 필요가 없습니다. 이미 CPU BLA를 사용하고 있다면 Cublas는 픽업하기가 어렵지 않아야합니다. (그렇지 않은 경우, 프로그램이 더 쉽기 때문에 Cublas 전에 최적화 된 CPU를 시도하는 것을 고려하십시오).

.NET을 코딩하는 경우 Cublas를 사용하는 가장 쉬운 방법은 아마도 Cublas.dll에 대한 플랫폼-인사 호출을 통해 일 것입니다. 호스트 (CPU) 메모리에 있고 장치 (GPU) 메모리에있는 어레이를 직접 유지하십시오.

Cuda & Cublas는 마법의 총알이 아닙니다. 성능은 많은 요인 (특히 PCIE 버스를 가로 지르는 전송)에 따라 다르며 CPU-BLAS 통화를 Cublas 호출을 교환하면 속도를 줄 수 없습니다. 성능 개선을 얻으려면 자신의 코드를보다 실질적으로 변경해야 할 수도 있습니다. 당신이 언급 한 다른 가이드는 CUDA 아키텍처와 병목 현상을 이해하는 데 매우 유용합니다.

편집 : 사용자 코드와 커널 코드 사이의 경계에 대해서는 명확하지 않았습니다. Cublas는 사전 구축되고 최적화 된 Cuda 커널의 라이브러리입니다. BLAS 기능 만 있으면 자신의 커널을 작성할 필요가 없습니다. 대신 Cublas 기능에 전화하십시오. 성능 튜닝시, Cublas 커널을 조정할 필요는 없지만 PCI Express 버스를 가로 지르는 전송 수를 최소화하기 위해 메모리를 호출하는 방법 및 메모리 사용 방법을 변경해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top