gpu coder™ 可从 matlab® 代码和 simulink® 模型生成优化的 cuda® 代码。所生成的代码包含 cuda 内核,针对深度学习、嵌入式视觉和信号处理算法的可并行化部分。为了提高性能,生成的代码会调用优化的 nvidia® cuda 库,包括 tensorrt™、cudnn、cufft、cusolver 和 cublas。您可以将这些代码作为源代码、静态库或动态库集成到您的项目,也可以针对桌面、服务器和嵌入到 nvidia jetson™、nvidia drive™ 及其他平台的 gpu 进行编译。您可以使用在 matlab 中生成的 cuda 代码,对深度学习网络以及算法中的其他计算密集型部分进行加速。使用 gpu coder,您可以将手写 cuda 代码整合到您的 matlab 算法和生成的代码中。
您可以将 gpu coder 与 embedded coder® 结合使用,以通过软件在环 (sil) 测试和处理器在环 (pil) 测试验证生成代码的数值行为。
开始:
生成快速、灵活的 cuda 代码
生成优化的 cuda 代码。免凯发k8网页登录的版权费部署代码。
免凯发k8网页登录的版权费部署算法
在主流 nvidia gpu 上编译和运行生成的代码,无论是桌面系统、数据中心还是嵌入式硬件皆可。生成的代码免凯发k8网页登录的版权费,您可将其免费部署到面向客户的商用应用。
gpu coder 成功案例
了解各行各业的工程师和科学家如何使用 gpu coder 为应用生成 cuda 代码。
使用支持的工具箱和函数生成代码
gpu coder 可使用多种 matlab 语言功能生成代码,设计工程师基于这些功能开发算法以用作大型系统组件。这包括来自 matlab 以及配套工具箱的数百个运算符和函数。
整合既有代码
使用既有代码集成功能,将受信任的或高度优化的 cuda 代码整合到您的 matlab 算法中,以在 matlab 中进行测试。然后,您就可以从生成的代码调用这些 cuda 代码。
从 simulink 模型生成 cuda 代码
在 simulink 中创建模型并生成优化的 cuda 代码。
运行仿真并为 nvidia gpu 生成优化的代码
您可以将 gpu coder 与 simulink coder™ 结合使用,以在 nvidia gpu 上加速 simulink 模型中 matlab function 模块的计算密集型部分。然后,您可以从 simulink 模型生成优化的 cuda 代码,并将其部署到您的 nvidia gpu 目标。
部署端到端深度学习算法
deep learning toolbox™ 提供各种经过训练的深度学习网络,包括 resnet-50、segnet 和 lstm,您可以在 simulink 模型中使用这些网络,并将其部署到 nvidia gpu。除了经过训练的深度学习网络,您还可以同时为预处理和后处理生成代码,以部署完整的算法。
记录信号、调整参数并验证代码的数值行为
您可以将 gpu coder 与 simulink coder 结合使用,以使用外部模式仿真实时记录信号和调整参数。将 gpu coder 与 embedded coder 结合使用,则可以运行软件在环测试和处理器在环测试,这些测试可以验证生成代码的数值行为是否与仿真的行为一致。
从深度学习网络生成 cuda 代码
使用 deep learning toolbox 部署经过训练的深度学习网络。
部署端到端深度学习算法
将 deep learning toolbox 提供的各种经过训练的深度学习网络(包括 resnet-50、segnet 和 lstm)部署到 nvidia gpu。您可以使用预定义的深度学习层,也可以针对特定应用自定义层。除了经过训练的深度学习网络,您还可以同时为预处理和后处理生成代码,以部署完整的算法。
针对推断生成优化代码
与其他深度学习凯发官网入口首页的解决方案相比,gpu coder 生成的代码占用的内存较少,因为它仅生成您的算法运行推断所需的代码。生成的代码会调用优化的库,包括 tensorrt 和 cudnn。
使用 tensorrt 进一步优化
生成代码以实现 nvidia tensorrt 集成,这是一个高性能的深度学习推断优化器和运行时环境。相比标准 fp32 数据类型,使用 int8 或 fp16 数据类型可实现进一步的性能提升。
优化生成的代码
gpu coder 可自动优化所生成的代码。使用设计模式进一步提升性能。
最大限度地减少 cpu-gpu 内存传输并优化内存使用
gpu coder 可对 matlab 代码段进行自动分析、识别和分区,以分别在 cpu 或 gpu 上运行。它还最大程度地减少了 cpu 与 gpu 之间的数据副本量。使用性能分析工具确定其他潜在瓶颈。
调用优化库
使用 gpu coder 生成的代码会调用优化的 nvidia cuda 库,包括 tensorrt、cudnn、cusolver、cufft、cublas 和 thrust。从 matlab 工具箱函数生成的代码也会尽可能映射到优化库。
使用设计模式进一步加速
设计模式(如模板处理)使用共享内存来提高内存带宽。使用某些函数(如卷积)时,将自动应用设计模式。您还可以使用特定编译控制指令手动调用它们。
硬件原型
将算法自动转换为 cuda 代码,以快速访问硬件。
在 nvidia jetson 和 drive 平台上开发原型
使用 gpu coder support package for nvidia gpus,自动将生成的代码交叉编译和部署到 nvidia jetson 和 drive 平台上。
通过 matlab 和生成的代码访问外设和传感器
通过 matlab 与 nvidia 目标进行远程通信,从网络摄像头和其他支持的外设获取数据,以便进行早期原型开发。将您的算法与外设接口代码一起部署到板卡,以便独立执行。
从原型到生产
将 gpu coder 与 embedded coder 结合使用,以交互方式在 matlab 代码与生成的 cuda 代码之间进行追溯。通过软件在环 (sil) 和处理器在环 (pil) 测试,验证在硬件上运行的生成代码的数值行为。
加速算法
生成 cuda 代码并进行编译以在 matlab 和 simulink 内使用。
在 matlab 中使用 gpu 加速算法
在 matlab 代码中以 mex 函数的形式调用生成的 cuda 代码以加速执行,不过性能将因 matlab 代码本身的特性而异。对生成的 mex 函数开展性能分析,以确定瓶颈并重点优化。
使用 nvidia gpu 加速 simulink 仿真
您可以将 gpu coder 与 simulink coder 结合使用,以在 nvidia gpu 上加速 simulink 模型中 matlab function 模块的计算密集型部分。