主要内容

mexcuda

编译用于GPU计算的mex函数

描述

例子

mexcuda文件名将源文件编译并链接到一个名为MEX-file的共享库中,可在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

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

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中verbose输出的标志mexcuda命令。

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

介绍了R2015b