码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Using The CuDLA API To Run A TensorRT Engine


    Using The CuDLA API To Run A TensorRT Engine

    Table Of Contents

    • Description
    • How does this sample work?
      • TensorRT API layers and ops
    • Prerequisites
    • Running the sample
      • Sample --help options
    • Additional resources
    • License
    • Changelog
    • Known issues

    Description

    This sample, sampleCudla, uses an API to construct a network of a single ElementWise layer and builds the engine. The engine runs in DLA standalone mode using cuDLA runtime. In order to do that, the sample uses cuDLA APIs to do engine conversion and cuDLA runtime preparation, as well as inference.

    How does this sample work?

    After the construction of a network, the module with cuDLA is loaded from the network data. The input and output tensors are then allocated and registered with cuDLA. When the input tensors are copied from CPU to GPU, the cuDLA task can be submitted and executed. Then we wait for stream operations to finish and bring output buffer to CPU to be verified for correctness.

    Specifically:

    • The single-layered network is built by TensorRT.
    • cudlaCreateDevice is called to create DLA device.
    • cudlaModuleLoadFromMemory is called to load the engine memory for DLA use.
    • cudaMalloc and cudlaMemRegister are called to first allocate memory on GPU, then let the CUDA pointer be registered with the DLA.
    • cudlaModuleGetAttributes is called to get module attributes from the loaded module.
    • cudlaSubmitTask is called to submit the inference task.

    TensorRT API layers and ops

    In this sample, the ElementWise layer is used. For more information, see the TensorRT Developer Guide: Layers documentation.

    Prerequisites

    This sample needs to be compiled with macro ENABLE_DLA=1, otherwise, this sample will print the following error message:

    Unsupported platform, please make sure it is running on aarch64, QNX or android.
    
    • 1

    and quit.

    Running the sample

    1. Compile this sample by running make in the /samples/sampleCudla directory. The binary named sample_cudla will be created in the /bin directory.
      cd /samples/sampleCudla make ENABLE_DLA=1

      Where `` is where you installed TensorRT.
      
      • 1
    2. Run the sample to perform inference on DLA.
      ./sample_cudla

    3. Verify that the sample ran successfully. If the sample runs successfully you should see an output similar to the following:
      &&&& RUNNING TensorRT.sample_cudla # ./sample_cudla [I] [TRT] [I] [TRT] --------------- Layers running on DLA: [I] [TRT] [DlaLayer] {ForeignNode[(Unnamed Layer* 0) [ElementWise]]}, [I] [TRT] --------------- Layers running on GPU: [I] [TRT] …(omit messages) &&&& PASSED TensorRT.sample_cudla

       This output shows that the sample ran successfully; `PASSED`.
      
      • 1

    Sample --help options

    To see the full list of available options and their descriptions, use the ./sample_cudla -h command line option.

    Additional resources

    The following resources provide a deeper understanding of sampleCudla.

    Documentation

    • Introduction To NVIDIA’s TensorRT Samples
    • Working With TensorRT Using The C++ API
    • NVIDIA’s TensorRT Documentation Library
    • Developer Guide for cuDLA APIs

    License

    For terms and conditions for use, reproduction, and distribution, see the TensorRT Software License Agreement documentation.

    Changelog

    June 2022
    This is the first release of the README.md file.

    Known issues

    There are no known issues with this tool.

  • 相关阅读:
    10.1select并发服务器以及客户端
    C++socket网络编程实战http服务器(支持php)(上)
    分享一款yyds!电子期刊制作网站
    【SpringBoot+MP】实现简单购物车并集成用户下单功能
    [ACTF2020 新生赛]Exec
    OpenCvSharp Tracker 目标追踪
    朋友圈怎么发能避免被折叠?
    css 流动边框
    降本增笑:记一次首页并发白屏优化过程
    修复MybatisX1.4.17版本插件误报@Mapkey is required错误
  • 原文地址:https://blog.csdn.net/u014647208/article/details/134326597
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号