나는 컨볼 루션에 크게 의존하는 코드를 가지고 있습니다. 그것은 실행 시간의 80 % 이상을 책임집니다. 나는 훨씬 더 빨리 만들기 위해 GPU를 사용하려면,하지만 난 완전히 이해하지 못하는 몇 가지 경우GPU에 데이터 저장 및 MATLAB 병렬 처리 컨볼 루션
(나는 아직 내 자신이 테스트 할 수있는 권한이없는)가 I (핸들을 상속 한) 클래스의 생성자에있는 정보를 GPU 메모리 (
gpuArray
)에 저장하려면 그대로 두어야합니까? 함수에 매개 변수로 클래스를 전달하는 데 문제가 있습니까? 데이터 자체에서 수행 작업은 모든 GPU에서 수행 할 수있다 (그리고 난 배열은 단지뿐만 아니라 배열이 저장 상관없이 작동 루핑 같은데요)에서 나는 매트릭스size(MyMat)=[s, s, b, n]
이을, n 크기의 다른 행렬을 동시에 저장하려고합니다.
[s, s, b]
(GPU에서 수행 할 수있는 연산 사용) parfor를 사용해야합니까? (오버 헤드로 인해 대부분의 경우에 나쁜 생각이된다는 것을 알고 있습니다) 또는 GPU로 하여금 이렇게 빨리 처리 할 수있는 빠른 방법이 있습니까? 이 경우 수행해야하는 유일한 계산은 회선입니다 (단 하나의 작업으로 모두 수행 할 수는 없습니다)
고마워요!
질문하지 않았지만 fftfilt 사용을 고려해 보셨습니까? 이는 FFT 알고리즘의 도움으로 오버랩 추가 방법을 사용하는 회선이며 직접 회선보다 훨씬 빠릅니다. BTW : 이것은 아마도 GPU에서도 실행될 수 있습니다. –
나는 이것이 대답 일 수있는 또 다른 질문을했습니다. 그러나 거기에서 의견 제시자는 FFT 회선을 테스트했고 내가 사용하고있는 매트릭스 크기가 더 느리다 고 말했다. – user1999728