2017-04-13 7 views
0

저는 C++에서 스파 스 매트릭스 계산을 위해 OpenACC를 사용하고 있습니다. OpenACC 영역 내에서 행렬 작업을 사용해야합니다.OpenACC - 스파 스 매트릭스 라이브러리

OpenACC와 호환되는 스파 스 매트릭스 라이브러리가 있습니까?

내가 아이겐 사용 해요하지만 내가 수동으로 좋은 생각을 소리가 나지 않는다 소스 코드를 수정하지 않는 한이 OpenACC와 호환되지 않습니다 것 같다 ...

+1

OpenACC 계산 영역 내에서 라이브러리를 사용하려는 경우, OpenACC를 사용하여 라이브러리 자체가 가속화 된 경우 또는 " OpenACC 코드와 라이브러리간에 데이터를 공유하려고합니다. 예를 들어, NVIDIA GPU를 대상으로하는 경우 OpenACC는 cuSparse와 상호 운용이 가능합니다. 즉, 라이브러리 호출과 OpenACC 코드간에 데이터를 공유 할 수 있습니다. PGI를 사용한다고 가정하면, 예제는 $ PGI/linux86-64/2016/examples/CUDA-Libraries/cuSPARSE/ –

+0

에서 찾을 수 있습니다. 의견을 보내 주셔서 감사합니다! 예 OpenAcc 지역 내에서 라이브러리를 사용하고 싶습니다 (이 답변을 편집하여이를 지적했습니다). cuSPARSE가 일을하는 것처럼 보입니다, 감사합니다! 당신은 대답으로 줄 수 있고 받아 들일 것입니다. –

답변

1

당신은을 대상으로하는 경우 NVIDIA GPU, PGI의 OpenACC 구현은 cuSparse와 상호 운용이 가능합니다. 즉, 라이브러리 호출과 OpenACC 코드간에 데이터를 공유 할 수 있습니다. PGI를 사용한다고 가정하면, 예제는 $ PGI/linux86-64/2016/examples/CUDA-Libraries/cuSPARSE /에서 찾을 수 있습니다. cuSPARSE에는 장치 측 루틴이 없으므로 호스트에서 호출해야합니다. 그러나 OpenACC 관리 장치 데이터는 "host_data"지시문을 통해 cuSPARSE 루틴으로 전달 될 수 있습니다.

cuBLAS에는 OpenACC 계산 영역 내에서 사용할 수있는 장치 루틴이 있습니다. 물론 스파 스 매트릭스 작업에는 적합하지 않습니다.