主要内容

mexcuda

编译用于GPU计算的mexo函数

描述

例子

mexcuda文件名编译源文件并将其链接到一个名为mexfile的共享库中,在MATLAB中可执行®.该函数编译使用CUDA编写的mex文件®c++框架与NVIDIA®学校网站编译器,允许文件定义和启动GPU内核。此外,mexcuda函数公开GPU MEX API,以允许MEX文件读写gpuArrays。

mexcuda是MATLAB的扩展墨西哥人函数。支持的编译器的一个子集万博1manbetx墨西哥人支持万博1manbetxmexcuda.所支持的万博1manbetx编译器依赖于MATLAB支持的CUDA Toolkit版本。

例子

mexcudaoption1……optionN文件名使用指定的生成选项进行生成。的option1……optionN参数补充或覆盖默认值mexcuda构建配置。中可用的大部分选项都可以使用墨西哥人mexcuda

例子

全部折叠

编译一个简单的mex函数来创建函数myMexFunction来自CUDA c++源文件。

mexcudamyMexFunction.cu

一个示例源文件可在matlabroot/工具箱/并行/ gpu /走读生/ src /墨西哥人/ mexGPUExample.cu

使用详细模式显示编译和链接命令以及对故障排除有用的其他信息。

mexcuda- vmyMexFunction.cu

用一个命令编译和链接多个源文件。

mexcudamyMexFunction.cuotherSource1.cppotherSource2.cpp

首先编译,然后链接创建函数。

mexcuda- cmyMexFunction.cumexcudamyMexFunction.obj

第一行编译为myMexFunction.obj(Windows®)或myMexFunction.o(UNIX®),以及第二个链接以创建该函数myMexFunction

编译使用动态并行的代码,定义启动其他内核的内核。

mexcuda动态myMexFunction.cu

编译一个使用CUDA图像原语库的mex函数,npp,安装在C:\Program Files\NVIDIA GPU计算工具包\CUDA\v7.5\lib\x64\nppi.lib

mexcuda'-LC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64'-lnppimyMexFunction.cu

输入参数

全部折叠

作为字符向量指定的一个或多个文件名,包括名称和文件扩展名。如果文件不在当前文件夹中,请指定文件的完整路径。文件名可以是以下任意组合:

  • C或c++语言源文件

  • 对象文件

  • 库文件

中列出的第一个源代码文件文件名是二进制mex文件的名称。要重写此命名约定,请使用与产出的选择。

数据类型:字符

一个或多个构建选项,指定为这些值之一。选项可以在任何平台上以任何顺序出现,除非另有说明。

的大多数可用选项墨西哥人函数。万博1manbetx此外,还可以使用以下选项。

选项 描述

动态

动态并行:编译定义启动其他内核的内核的mex文件。

- g

为设备代码生成调试信息。这使得在NVIDIA的调试应用程序(NSight或cuda-gdb)中可以逐行逐行地执行内核代码。打开主机代码使用的调试- g

以下墨西哥人不支持功能选项。万博1manbetx

选项 原因

-compatibleArrayDims

MATLAB大数组处理API的使用是隐式的,并且不能被重写。

所有其他选项墨西哥人支持万博1manbetxmexcuda.请参阅相关文档墨西哥人获取详细信息。

提示

  • 如果未检测到CUDA工具包或不支持的版本,MATLAB将使用NVIDIA编译CUDA代码万博1manbetx学校网站编译器安装MATLAB。检查哪个编译器mexcuda是用,是用- v属性中的详细输出mexcuda命令。

  • 与MATLAB一起安装的CUDA工具包不包含CUDA工具包中可用的所有库。如果您想链接一个没有安装MATLAB的特定库,请安装CUDA工具包。您可以查看MATLAB需要使用哪个CUDA工具包版本gpuDevice.有关CUDA工具包的更多信息,请参见CUDA工具包要求

  • 如果mexcuda无法定位NVIDIA编译器(学校网站)在您安装的CUDA工具包中,它可能安装在非默认位置。的位置学校网站把它存储在环境变量中MW_NVCC_PATH.您可以使用MATLAB设置此变量setenv命令。例如,

    setenv (“MW_NVCC_PATH”“/ usr /地方/ CUDA / bin”

版本历史

在R2015b中引入