Processing on GPU in Simulink

조회 수: 4 (최근 30일)
Bhavanithya Thiraviaraja
Bhavanithya Thiraviaraja 2018년 4월 23일
댓글: Joss Knight 2021년 6월 23일
I have a block in Simulink which does a frequency shift of a Signal. It consists of calculations involving exponential. I used the 'Math function' block. The whole Simulink model takes approximately 1042.34s. When this block is removed it takes 249.38s. So the execution time is increased so much because of this exponential block.
I am trying to find different ways to reduce the time taken because of this. I tried replacing this with a MATLAB function block using GPU Arrays like below,
function y = exponential(u)
%#codegen
y = zeros(size(u),'single');
coder.extrinsic('gpuArray');
u = gpuArray(u);
y = exp(u);
This throws a runtime error 'MATLAB expression 'exp' is not numeric.'
How to get rid of this error and use GPU in Simulink? If this is not the right way to use GPU then please give me a reference for using it right.

채택된 답변

Joss Knight
Joss Knight 2018년 4월 28일
gpuArray is not yet supported by GPU Coder. To see how you can use GPU Coder with Simulink, take a look at this example.
  댓글 수: 2
Bhavanithya Thiraviaraja
Bhavanithya Thiraviaraja 2018년 5월 4일
편집: Bhavanithya Thiraviaraja 2018년 5월 4일
So if I understand it right, there is no way to use gpuArray in Simulink via a MATLAB function block but it can be made to run on the GPU using the GPU coder as given in the exaample
Joss Knight
Joss Knight 2018년 5월 10일
That's the way I understand it, yes.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Hassan Khan
Hassan Khan 2021년 6월 23일
hello brother..
i have a GPU of GTX 1650 ... i want to run my simulink model on gpu but i dont know how to do this... please give me an example of simulink or give some other reference that can help me.
Thanks

카테고리

Help CenterFile Exchange에서 Get Started with GPU Coder에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by