parallellisation of a large array
이전 댓글 표시
I have an array of about a million points. On each point, a number of computations involving frequent conversion between the frequency and time domain is done. So the overall time to process a million data points come to about 5 minutes. I'm looking to to reduce the computation time. One option I am exploring is using GPUs. One of the ways I'm looking to do this is is by chopping the array into smaller sizes and perform the analysis (run the same code) on each of the smaller segments simultaneously. Will I be able to achieve this using GPUs (i.e use the ~100 cores as a cluster of workstations)? If so, how would I simultaneously run multiple instances of the code on multiple threads (cores) simultaneously from the same client program?
Thank you for your help and advice!
답변 (1개)
Edric Ellis
2011년 10월 7일
1 개 추천
GPUs are great at elementwise computations, by putting your data into a gpuArray, you can have all the cores of your CUDA GPU operating simultaneously on your data. Your best is probably to use arrayfun as this lets you write MATLAB code to operate on each element.
This demo shows various different ways of working with gpuArrays.
카테고리
도움말 센터 및 File Exchange에서 GPU Computing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!