Eszközök

Mesterséges intelligenciával generált szöveg

DIN Deploy: C++ mintapéldák ONNX Runtime és NVIDIA TensorRT RTX gyorsítással helyi AI-alkalmazásokhoz

A Do Inference Now (DIN) Deploy egy nyílt forráskódú C++ mintagyűjtemény, amely összekapcsolja az ONNX Runtime és a NVIDIA TensorRT RTX végrehajtóelemet, hogy helyi, hardveresen gyorsított alkalmazásokba vigye az AI-modelleket Windows és Linux rendszereken.

DIN Deploy: C++ mintapéldák ONNX Runtime és NVIDIA TensorRT RTX gyorsítással helyi AI-alkalmazásokhoz

A Do Inference Now (DIN) Deploy egy nyílt forráskódú, gyakorlati C++ mintagyűjtemény, amely azt mutatja meg, hogyan juttathatók el AI modellek helyi (native) alkalmazásokba ONNX formátumon és ONNX Runtime-on keresztül, NVIDIA TensorRT RTX végrehajtási szolgáltatóval gyorsítva. A projekt célja a modell-ellenőrzőponttól (checkpoint) a natív, hardveresen gyorsított végrehajtásig tartó átmenet megkönnyítése Windows és Linux rendszerekre. Az ONNX Runtime API-ját WinML 2.0-on keresztül is el lehet érni.

Működési elv: export külön, deployment külön

Minden DIN Deploy minta két részből áll: egy Python alapú exportőr letölti a modell ellenőrzőpontját a Hugging Face-ről és ONNX-objektummá konvertálja; az alkalmazásoldalt natív, parancssori C++ kliens valósítja meg ONNX Runtime (ORT) használatával. Ez a felosztás lehetővé teszi, hogy a modellkonverzió független maradjon a tényleges telepítési logikától, így az exportált modellt bármilyen helyi alkalmazásba be lehet építeni anélkül, hogy egy modellspecifikus futtatókörnyezetre lenne szükség.

A mintakódok többsége az ONNX Runtime session és tensor API-it használja C++-ban. A gyártó specifikus részek — például CUDA API-k és kernel-ek — csak opcionális, gyorsított útvonalakon jelennek meg. Azok az execution providerek, amelyek támogatják az ONNX Runtime szükséges tensor API-jait, futtatni tudják a megosztott kódot. Az ORT copy tensor API-ja továbbá lehetővé teszi az adattárolás helyének hatékony kezelését anélkül, hogy a megosztott kódban dedikált gyártói API-kat kellene használni.

A FLUX.2 minta a modellek elő- és utófeldolgozásához az ONNX Runtime grafikus interop képességét alkalmazza (bevezetve az ORT 1.25-ös verziójával), Vulkan és DirectX használatával a mintavételezéshez.

Platformtámogatás és építés

A tároló CMake presets-eket tartalmaz Windows és Linux rendszerekre, továbbá Arm64 variánsokra is. A DirectX támogatás csak Windows alatt érhető el. Alapértelmezés szerint a CMake letölti az ONNX Runtime-ot és a TensorRT RTX-et.

Támogatott AI feladatok és minták

  • Automatikus beszédfelismerés (ASR): a gyűjtemény offline és streaming pipeline-okat is támogat. Az OpenAI Whisper modellek lefedik az offline átírást különböző méretekben, míg az NVIDIA Parakeet TDT és az NVIDIA Nemotron ASR Streaming streaming megoldásokat mutat be. A minták bemutatják, hogyan lehet hangot átvinni egy natív alkalmazáson keresztül és visszaadni a transzkripciós eredményeket GPU gyorsítással, ha rendelkezésre áll.
  • Képi szegmentálás: a Meta SAM 2.1 minták interaktív maszkolást támogatnak képeken és videón, a modell-kimenetekből szegmentációs maszkokat készítve, amelyeket natív alkalmazások használhatnak kiválasztáshoz, követéshez és egyéb számítógépes látás feladatokhoz.
  • Képalkotás prompt alapján: a FLUX.2-klein-4B minta promptvezérelt képgenerálást mutat be, grafikus API-k közti interopokkal Vulkan és DirectX alatt, így a GPU-n tárolt erőforrások integrálhatók egy cross-vendor shader interfésszel.

A minta bemutatja továbbá, hogyan készít a NVIDIA Model Optimizer utólagos kvantálást (post-training quantization, PTQ) egy ONNX modellre. A kvantálás hardverfüggő, de mivel az ONNX interfészek nem változnak, a kvantált modell cserélhető helyettesítőként alkalmazkodás nélkül a meglévő alkalmazáskódhoz.

Teljesítmény (választott mérések)

A tárolóban található összehasonlító mérési eredmények DGX Spark gépen mért GPU és CPU teljesítményt mutatnak be néhány kiválasztott DIN Deploy munkafolyamat esetén. Az eredmények az audiomunkák esetén a valós időhöz viszonyított többszörösét adják meg (magasabb érték gyorsabb végrehajtást jelent).

  • openai/whisper-large-v3-turbo: GPU 58.5x, CPU 3.8x
  • nvidia/nemotron-3.5-asr-streaming-0.6b: GPU 39.01x, CPU 3.24x
  • nvidia/parakeet-tdt-0.6b-v3: GPU 206.41x, CPU 14.44x
  • facebook/sam2.1-hiera-base-plus: GPU 38.3 FPS, CPU 0.5 FPS

Ezek az adatok azt mutatják, hogy a megfelelő hardveres támogatással jelentős gyorsulás érhető el GPU-n a kiválasztott hálózati feladatok esetén.

Hogyan kezdjünk hozzá

A kezdéshez használjuk a tárház CMake presets-eit Windows, Linux, x86-64 és Arm64 célokra. A projekt konfigurálása és buildelése után exportáljunk egy modellt ONNX-be, majd futtassuk a parancssori klienset TensorRT RTX-tel, vagy ágyazzuk be a kódot saját alkalmazásunkba és használjuk a pipeline implementációkat. A tároló dokumentációja és presetjei letöltik az ONNX Runtime-ot és a TensorRT RTX-et alapértelmezés szerint.

Hol található további információ

A tároló és a kiegészítő témák kapcsán a projekt kapcsolatban áll több forrással: TensorRT for RTX, NVIDIA Local AI, a DIN Deploy repository dokumentációja, valamint az NVIDIA blogszéria a modellkvantálásról, amelyek további részleteket és útmutatásokat adnak a kvantálásról és a helyi AI integrációról.