GPU编码器

为NVIDIA GPU生成CUDA代码

GPU编码器™产生优化的CUDA®来自Matlab的代码®代码和Simuli金宝appnk.®楷模。生成的代码包括用于深度学习,嵌入式视觉和信号处理算法的并行部分的CUDA内核。对于高性能,生成的代码调用优化了nvidia®CUDA图书馆,包括Tensorrt™,CUDNN,袖口,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上的缺陷。

从支持的工具箱和函数生成代码金宝app

GPU编码器从广泛的MATLAB语言功能生成代码,该功能设计设计工程师用于开发算法作为较大系统的组件。这包括来自Matlab和Companion工具箱的数百个运营商和函数。

MATLAB语言和工具箱支持代码生成。金宝app

合并遗留代码

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

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

从Simulink模型生成CUDA代码金宝app

在Simulink中创建模型并生成金宝app优化的CUDA代码。

运行模拟并为NVIDIA GPU生成优化代码

与Simulink Coder金宝app™一起使用时,GPU编码器在NVIDIA GPU上的Simulink模型中加速了MATLAB功能块的计算密集部分。然后,您可以从Simulink模型生成优化的CUDA代码,并将其部署到您的NVIDIA GPU目标。金宝app

金宝app在GPU上运行的Sobel边缘检测器的Simulink模型。

部署端到端深度学习算法

在Simulink模型中使用各种培训的深度学习网络(包括Reset-50,SEGNET和LSTM),并在SIMULINK模型中从Deep Learning Toolbox™部署到NVIDIA GPU。金宝app生成用于预处理和后期后处理的代码以及您培训的深度学习网络以部署完整的算法。

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

与Simulink编码器一起使金宝app用时,GPU编码器使您可以使用外部模式仿真实时记录信号和调谐参数。使用带有GPU编码器的嵌入式编码器来运行循环和处理器内的循环测试,这些测试在数字上验证生成的代码与模拟的行为匹配。

使用外部模式在Simulink中记录信号和调谐参数。金宝app

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

部署具有深度学习工具箱的培训的深度学习网络。

部署端到端深度学习算法

将各种培训的深度学习网络(包括Reset-50,SEGNET和LSTM)从深度学习工具箱到NVIDIA GPU。使用预定义的深度学习层或定义特定应用程序的自定义图层。生成用于预处理和后期后处理的代码以及您培训的深度学习网络以部署完整的算法。

生成优化的推理代码

GPU编码器与其他深度学习解决方案相比,GPU编码器产生具有较小占用的代码,因为它只生成使用特定算法运行推断所需的代码。金宝搏官方网站生成的代码调用优化的库,包括TensorRT和CUDNN。

使用CUDNN的TITAN V GPU与VGG-16的单个图像推断。

使用张力进一步优化

生成与NVIDIA TENRT的代码,高性能深度学习推理优化和运行时。使用INT8或FP16数据类型在标准FP32数据类型上进行额外的性能提升。

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

深度学习量化

量化您的深度学习网络以降低内存使用率并提高推理性能。使用Deep Network Standizer应用程序分析和可视化性能和推理准确性之间的折衷。

优化生成的代码

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

最小化CPU-GPU存储器传输并优化内存使用情况

GPU编码器自动分析,识别和分区MATLAB代码的段以在CPU或GPU上运行。它还最小化CPU和GPU之间的数据副本数量。使用分析工具来识别其他潜在的瓶颈。

识别潜在瓶颈的简介报告。

调用优化的库

使用GPU编码器生成的代码呼叫优化的NVIDIA CUDA库,包括图特子,CUDNN,CUSOLVER,袖口,CUBLA和推力。尽可能从MATLAB工具箱函数生成的代码映射到优化库。

生成的代码调用在优化的袖扣库库中。

使用设计模式进行进一步加速度

设计模式,如模板处理使用共享内存以改善内存带宽。它们使用诸如卷积等某些功能时自动应用。您还可以使用特定的pragmas手动调用它们。

模板加工设计模式。

硬件原型

快速达到硬件,通过将算法的自动转换为CUDA代码。

NVIDIA Jetson和Drive Platforms的原型

使用GPU编码器支持包为NVIDIA GPU自动化生成代码的交叉编译和部署生成的代码和驱动平台。金宝app

NVIDIA Jetson平台上的原型设计。

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

远程与Matlab的NVIDIA目标通信,从网络摄像头和其他支持的外围设备获取早期原型的数据。金宝app将算法与外设接口代码一起部署到主板以进行独立执行。

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

从原型化到生产

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

使用GPU编码器具有嵌入式编码器的交互式可追溯性报告。

加速算法

生成CUDA代码并将其编译用于Matlab和Simulink内部。金宝app

使用MATLAB中的GPU加速算法

将生成的CUDA代码作为MAX功能从MATLAB代码到速度执行,但效果会根据MATLAB代码的性质而有所不同。配置文件生成MEX函数以识别瓶颈并关注您的优化工作。

使用NVIDIA GP金宝appU加速Simulink模拟

与Simulink编码器一起使金宝app用时,GPU编码器在NVIDIA GPU上的Simulink模型中加速了MATLAB功能块的计算密集部分。