GPU Coder

为 NVIDIA GPU 生成 CUDA 代码

MATLAB® 的 GPU Coder™ 生成优化的 CUDA® 代码,用于深度学习、嵌入式视觉和自主系统。生成的代码会调用优化的 NVIDIA CUDA 库,包括 cuDNN、cuSolver 和 cuBLAS。该代码可以以源代码、静态库或动态库形式集成到您的项目中,而且可以用于在 NVIDIA Tesla® 和 NVIDIA Tegra® 等 GPU 上开发原型。您可以在 MATLAB 中使用生成的 CUDA 代码,加速 MATLAB 代码中计算量密集型部分。使用 GPU Coder,您还可以将既有 CUDA 代码整合到您的 MATLAB 算法和生成的代码中。

GPU Coder 与 Embedded Coder® 结合使用,可通过软件在环 (SIL) 测试验证生成代码的数值行为。

开始:

生成快速、灵活的 CUDA 代码

生成优化的 CUDA 代码。部署免特许费代码

部署免特许费算法

在流行的 NVIDIA GPU 上编译和运行生成的代码,从桌面系统到数据中心再到嵌入式硬件皆可。生成的代码免特许费 - 可免费部署在客户的商业应用中。

Explore gallery (2 images)

从已支持的工具箱和函数生成代码

GPU Coder 可将范围广泛的 MATLAB 语言特性生成代码,设计工程师使用这些语言特性来为大型系统开发算法组件。这包括来自 MATLAB 以及配套工具箱的超过 390 个运算符和函数。

MATLAB 为代码生成提供的语言和工具箱支持。

整合既有代码

使用既有代码集成功能,将受信任或高度优化的 CUDA 代码整合到您的MATLAB 算法中,以便在 MATLAB 中进行测试,然后从生成的代码调用同一 CUDA 代码。

将现有 CUDA 代码整合到生成的代码中。

从深度学习网络生成 CUDA 代码

使用 Deep Learning Toolbox 部署经过训练的深度学习网络。

部署端到端深度学习算法

从 Deep Learning Toolbox™ 到 NVIDIA GPU,部署各种经过训练的深度学习网络,如 ResNet-50 和 SegNet。生成用于预处理和后处理的代码以及经过训练的深度学习网络,以部署完整的算法。

部署 SegNet 和其他经过训练的深度学习网络。

为推理生成优化代码

与其他深度学习解决方案相比,GPU Coder 生成的代码占用空间较小,因为它仅生成你的算法运行推理所需的特定代码。生成的代码会调用优化的库,包括 TensorRT™ 和 cuDNN。

在使用 cuDNN 的 Titan V GPU 上通过 VGG-16 进行单个图像推理。

使用 TensorRT 进一步优化

生成代码,与 NVIDIA TensorRT(一种高性能深度学习推理优化器和运行时)集成。与标准 FP32 数据类型相比,使用 INT8 或 FP16 数据类型可获得额外性能提升。

通过 TensorRT 和 INT8 数据类型提高执行速度。

优化生成的代码

利用优化自动应用至 GPU Coder 生成的代码的优势。使用设计模式进一步提升性能。

最大限度地减少 CPU-GPU 内存传输并优化内存使用

GPU Coder 自动分析、识别和分区 MATLAB 代码段,以便在 CPU 或 GPU 上运行。它还最大限度地减少了 CPU 与 GPU 之间的数据复制量。使用性能评测工具确定其他潜在瓶颈。

性能评测报告识别出潜在的瓶颈。

调用优化库

使用 GPU Coder 生成的代码会调用优化的 NVIDIA CUDA 库,包括 TensorRT、cuDNN、cuSolver、cuFFT、cuBLAS 和 Thrust。从 MATLAB 工具箱函数生成的代码尽可能映射到优化库。

生成代码调用优化的cuFFT CUDA库中的函数。

使用设计模式进一步加速

设计模式(如模板处理)使用共享内存来提高内存带宽。使用某些函数(如卷积)时,自动应用设计模式。您还可以使用特定编译控制指令手动调用它们。

模板处理设计模式。

硬件原型实现

通过将算法自动转换为 CUDA 代码快速访问硬件。

在 NVIDIA Jetson 和 DRIVE 平台上开发原型

使用适用于 NVIDIA® GPU 的 GPU Coder™支持包,自动将生成的代码交叉编译和部署到 NVIDIA Jetson™ 和 DRIVE™ 平台上。

在 NVIDIA Jetson 平台上开发原型。

通过 MATLAB 和生成的代码访问外设和传感器

通过 MATLAB 与 NVIDIA 目标进行远程通信,从网络摄像头和其他支持的外设获取数据,以便进行早期原型开发。将您的算法与外设接口代码一起构建并部署到电路板上,以便独立执行。

通过 MATLAB 和生成的代码访问外设和传感器。

从原型到产品

将 GPU Coder 与 Embedded Coder® 结合使用,以交互方式跟踪 MATLAB 代码以及生成的 CUDA。通过软件在环 (SIL) 和处理器在环 (PIL) 测试,验证在硬件上运行的生成代码的数值行为。

通过结合使用 GPU Coder 和 Embedded Coder生成的交互式可追溯性报告。

加速算法

生成 CUDA 代码并进行编译以在 MATLAB 内使用。

使用 GPU 加速算法

从 MATLAB 代码以 MEX 函数的形式调用生成的 CUDA 代码以加速执行,不过性能将因 MATLAB 代码本身的特性而异。分析所生成的 MEX 函数,以确定瓶颈并重点优化。

最新特性

长短期记忆 (LSTM) 网络

为 LSTM 等循环网络生成代码

深度学习目标硬件

将深度学习网络部署到 Arm Mali GPU 处理器

深度学习网络

为 DeepLab-v3+、MobileNet-v2、Xception 和 DenseNet-201 生成代码

YOLO V2 对象检测器

从 YOLO V2 对象检测器为 cuDNN 和 TensorRT 目标生成代码

动态并行

从 GPU 设备上运行的线程启动内核

GPU 上的一维归约运算

处理器在环 (PIL) 测试

验证 NVIDIA GPU 上生成的 CUDA 代码的数值行为

NVIDIA 硬件支持

访问机载摄像头模块并为 VideoReader 函数生成 CUDA 代码

关于这些特性和相应函数的详细信息,请参阅发行说明

获取免费试用版

30 天探索触手可及。

马上下载

准备购买?

获取详细价格和并探索相关产品。

您是学生吗?

获得 MATLAB 和 Simulink 学生版软件。

了解更多