GPU编码器

为NVIDIA gpu生成CUDA代码

GPU编码器™生成优化的CUDA®从MATLAB代码®代码和仿真软件万博1manbetx®模型。生成的代码包括用于深度学习、嵌入式视觉和信号处理算法的可并行化部分的CUDA内核。为了高性能,生成的代码调用优化的NVIDIA®CUDA库,包括TensorRT™、cuDNN、cuFFT、cuSolver和cuBLAS。这些代码可以作为源代码、静态库或动态库集成到您的项目中,并且可以针对桌面、服务器和嵌入在NVIDIA Jetson™、NVIDIA DRIVE™和其他平台上的gpu进行编译。您可以使用MATLAB中生成的CUDA来加速深度学习网络和其他计算密集型部分的算法。GPU编码器让你把手写CUDA代码纳入你的算法和生成的代码。

当与嵌入式编码器一起使用时®, GPU编码器允许您通过在环软件(SIL)和在环处理器(PIL)测试验证生成代码的数值行为。

开始:

生成快速,灵活的CUDA代码

生成优化的CUDA代码。免版税的部署代码。

部署算法免版税

从桌面系统到数据中心再到嵌入式硬件,在流行的NVIDIA gpu上编译并运行生成的代码。生成的代码是免版税的,将其免费部署到商业应用程序中。

探索图库(2张图片)

GPU编码器的成功故事

了解在各种行业的工程师和科学家如何使用GPU编码器为他们的应用程序生成CUDA代码。

空客原型机自动检测NVIDIA Jetson TX2的缺陷。

从支持的工具箱和函数中生成代码万博1manbetx

GPU编码器从广泛的MATLAB语言特性生成代码,设计工程师使用这些特性开发算法作为更大系统的组件。这包括来自MATLAB和配套工具箱的数百个操作符和函数。

支持MATLAB语言和工具箱的代码生成。万博1manbetx

将遗留代码

使用遗留代码集成功能,将可信或高度优化的CUDA代码合并到MATLAB算法中进行MATLAB测试。然后从生成的代码中调用相同的CUDA代码。

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

从Simulink模型生成CUDA代码万博1manbetx

在Simulink中创建模型并生成万博1manbetx优化的CUDA代码。

运行模拟和生成优化代码的NVIDIA gpu

当与Simulink Code万博1manbetxr™一起使用时,GPU Coder可以加速你在NVIDIA GPU上的Simulink模型中的MATLAB函数块的计算密集型部分。然后,你可以从Simulink模型生成优化的CUDA代码,并将其部署到你的NVIDIA GPU目标。万博1manbetx

万博1manbetx运行在GPU上的Sobel边缘检测器的Simulink模型。

部署端到端深度学习算法

在Simulink模型中使用深度学习工具箱™中的各种训练有素的深度学习网络(包括ResNet-50、SegNet和LSTM),并部署到NVIDIA gpu。万博1manbetx生成预处理和后处理代码与您训练的深度学习网络一起部署完整的算法。

日志信号,调谐参数,数字验证代码行为

当与Simulink Code万博1manbetxr一起使用时,GPU Coder使您能够使用外部模式模拟实时记录信号和调整参数。使用嵌入式编码器与GPU编码器一起运行软件在循环和处理器在循环测试,从数值上验证生成的代码与模拟行为的匹配。

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

使用深度学习工具箱部署训练有素的深度学习网络。

部署端到端深度学习算法

部署从深度学习工具箱到NVIDIA gpu的各种训练有素的深度学习网络(包括ResNet-50, SegNet和LSTM)。使用预定义的深度学习层或为您的特定应用程序定义自定义层。生成预处理和后处理代码与您训练的深度学习网络一起部署完整的算法。

为推理生成优化的代码

与其他深度学习解决方案相比,GPU编码器生成的代码占用空间更小,因为它只生成使用特定算法运行推断所需的代码。万博 尤文图斯生成的代码调用优化的库,包括TensorRT和cuDNN。

在Titan V GPU上使用cuDNN的VGG-16单图像推理。

进一步优化使用TensorRT

生成与NVIDIA TensorRT集成的代码,TensorRT是一个高性能的深度学习推理优化器和运行时。使用INT8或FP16数据类型可以提高标准FP32数据类型的性能。

使用TensorRT和INT8数据类型提高执行速度。

深度学习量化

量化您的深度学习网络,以减少内存使用和提高推理性能。使用Deep Network Quantizer应用程序分析和可视化提高性能和推理精度之间的权衡。

优化生成的代码

GPU编码器自动优化生成的代码。使用设计模式进一步提高性能。

最小化CPU-GPU内存传输和优化内存使用

GPU编码器自动分析、识别和划分MATLAB代码段,以便在CPU或GPU上运行。它还将CPU和GPU之间的数据拷贝数量降到最低。使用分析工具来识别其他潜在的瓶颈。

识别潜在瓶颈的概要报告。

调用优化图书馆

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

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

使用设计模式进一步加速

模板处理等设计模式使用共享内存来提高内存带宽。当使用某些函数(如卷积)时,它们会自动应用。您还可以使用特定的实用程序手动调用它们。

模具加工设计图案。

原型硬件

获得硬件快速与自动转换您的算法CUDA代码。

原型在NVIDIA Jetson和驱动平台上

使用NVIDIA GPU的GPU编码器支持包,在NVIDIA Jetson和DRIVE平台上自动交叉编译和部署生成的代码。万博1manbetx

在NVIDIA Jetson平台上进行原型设计。

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

从MATLAB与NVIDIA目标远程通信,从网络摄像头和其他支持的外围设备获取数据,用于早期原型。万博1manbetx将算法和外围接口代码部署到板上,以便独立执行。

访问外围设备和传感器从MATLAB和生成的代码。

从原型制作转向生产

使用GPU编码器与嵌入式编码器交互式跟踪您的MATLAB代码并排与生成的CUDA代码。使用软件在环(SIL)和处理器在环(PIL)测试验证在硬件上运行的生成代码的数值行为。

交互式跟踪报告使用GPU编码器与嵌入式编码器。

加速算法

生成CUDA代码并编译,以便在MATLAB和Simulink中使用。万博1manbetx

在MATLAB中使用gpu加速算法

从MATLAB代码中调用生成的CUDA代码作为MEX函数,以加快执行速度,尽管性能将根据MATLAB代码的性质而变化。分析生成的MEX函数,以识别瓶颈并集中您的优化工作。

使用NVIDIA gp万博1manbetxu加速Simulink仿真

当与Simulink Code万博1manbetxr一起使用时,GPU Coder可以加速你在NVIDIA GPU上的Simulink模型中的MATLAB函数块的计算密集型部分。