cudaMalloc / cudaMemcpy를 사용하여 장치에 행렬과 벡터를 할당하는 응용 프로그램이 있습니다. 행렬은 열 중심으로 정의됩니다. 이제 cublas 라이브러리 (cublasSgemv)의 함수를 사용하여 이들을 함께 곱하고 싶습니다. cublas API 함수를 사용하려면 cudaMalloc을 사용하여 행렬과 벡터의 중복을 할당하고 호스트에서 cublasSetMatrix / cublasSetVector로 초기화해야 할 것 같습니다. 이 모든 메모리를 복제하는 것은 비용이 많이 듭니다.
내 이해에 따르면 cublasSetMatrix / cublasSetVector 함수는 cudaMemCpy의 가벼운 래퍼입니다. cudaMemCpy로 초기화 된 배열에 대한 포인터를 cublas API 함수에 전달할 수 있는지 궁금합니다. 아니면 API가 인식하는 방식으로 배열을 가볍게 래핑하여 모든 메모리 중복을 피할 수 있습니까?
예, cublasGet / SetMatrix 대신 cudaMemcpy를 사용할 수 있습니다. CUBLAS도 함께 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다