在Matlab中调用GPU的CUDA API进行并行加速,主要有两种途径:
1)对现有Matlab代码的简单改写,调用Matlab中支持CUDA的函数进行加速。
2)将C语言的CUDA函数封装成库,在Matlab中进行调用。
前者简单方便,效率低;后者效率高,稍微麻烦。
一、matlab中直接的gpu加速计算
matlab中直接做GPU计算分为三个步骤。
(1)数据的初始化
使用gpuArray()则可生成gpu端数据,a=gpuArray(b),即为将cpu端数据b拷贝到gpu端的a中。
(2)对GPU数据进行操作
可以使用matlab中的库函数对gpuarray直接进行操作。
(3)把GPU上的数据回传给CPU
使用gather()则可将gpu端的数据传回cpu端。
二、 Matlab中调用CUDA C
配置环境
(1)Matlab环境配置:
1mex -setupC 配置编译器。注:若c语言编译器和matlab版本不匹配系统会报错:找不到编译器活SDK等。配置成功后显示下图所示信息。
2 mex -setup c++ 选择语言,在编译器配置成功后选择所需的语言。配置成功后显示如下图所示信息。