2013-05-02 3 views
1

CULA에 따른 방정식 시스템을 풀기 위해 내 GPU에 큰 행렬을 설정하고 싶습니다.CUDA의 더 큰 행렬에 행렬을 복사하는 방법

당신을 위해 어떤 숫자들은 문제를 이해하기 :

big matrix:  400x400 
small matrices: 200x200 

지금 내가 두 번째 매트릭스의 특정 부분에 작은 행렬의 매 분기 (100x100)을 복사 할.

두 개의 가능하지만 분명히 느린 예제를 발견했습니다. cublasSetMatrixcublasGetMatrix이 선행 차원의 사양을 지원하므로 원하는 부분을 배치 할 수 있지만 매트릭스를 호스트에 다시 복사해야합니다. 다른 예는 cudaMemcpy이며, 선행 크기를 지원하지 않습니다. 여기서 모든 단일 행/열을 복사 할 수 있습니다 (이 루틴에서 사용되는 것이 확실하지 않은 순간에 데이터는 Fortran에서 가져옵니다). 그러나이 방법으로, 나는 큰 오버 헤드를 가져야한다. ...

매트릭스를 복사하려면 내 자신의 커널을 작성하는 것보다 더 좋은 방법이 있을까요?

답변

0

Q를 수정할 수 있습니다. 선행 차원을 변경하고 D2Dcpy를 수행 할 수있는 방법을 찾고있는 것 같습니다.

here과 같이이를 수행 할 수 있습니다.

+0

이 루틴은 내가 찾고있는 것입니다. Btw, 나는 나의 주요한 차원을 바꾸려고하지 않는다. 선형 메모리를 보면서 특정 간격을 고려하도록 선행 차원을 지정하는 방법 만 필요했습니다. – Stefan

관련 문제