技術(shù)博客 – 使用 Python 和 C 快速構(gòu)建 AI 流應(yīng)用程序++
邊緣傳感器流的 AI 處理的計(jì)算需求越來越高。邊緣設(shè)備必須跟上高速率的傳入數(shù)據(jù)流、處理、顯示、存檔和流結(jié)果,或?qū)崟r(shí)關(guān)閉控制循環(huán)。這需要能夠進(jìn)行高性能計(jì)算的強(qiáng)大、高效、準(zhǔn)確的硬件和軟件解決方案。
邊緣設(shè)備還必須快速安全地將數(shù)據(jù)傳輸?shù)狡渌吘壴O(shè)備、預(yù)數(shù)據(jù)中心或云,以存儲(chǔ)和分析接收到的數(shù)據(jù)。先進(jìn)的邊緣 AI 處理解決方案可快速處理大量傳感器數(shù)據(jù),并實(shí)時(shí)產(chǎn)生可操作的見解。
nvidia Holoscan SDK v0.4 現(xiàn)在為邊緣的流式 AI 應(yīng)用程序提供了更高效的處理。開發(fā)人員可以使用包含加速庫、預(yù)訓(xùn)練 AI 模型和參考應(yīng)用程序的 SDK ,使用 Python 和 C 構(gòu)建自己的流式應(yīng)用程序。
Holoscan 最初用于醫(yī)療 AI 用例,現(xiàn)在已準(zhǔn)備好在多個(gè)行業(yè)中應(yīng)用更廣泛的應(yīng)用,以實(shí)現(xiàn)邊緣的高性能計(jì)算。
新的 Holoscan SDK v0.4 功能包括:
- 快速應(yīng)用程序開發(fā)的 Python 開發(fā)人員經(jīng)驗(yàn)。
- 使用 C 的顯著改進(jìn)。
- 高效的多 AI 推理。
- 低延遲現(xiàn)場可編程門陣列( FPGA )阿爾法混合。
- HoloHub ,一個(gè)收集對 Holoscan 貢獻(xiàn)的集中存儲(chǔ)庫。
此外,部署堆棧已更新為與 v0.4 中添加的新功能同步。接下來,將使用新的 SDK 版本更新部署堆棧。
Python 開發(fā)人員經(jīng)驗(yàn)
Holoscan SDK 現(xiàn)在提供了 Python 應(yīng)用程序開發(fā)經(jīng)驗(yàn)。無需編譯任何代碼,開發(fā)人員可以使用 NVIDIA GPU 、 NVIDIA Clara AGX 和 NVIDIA IGX Orin 開發(fā)套件在 x86 _ 64 工作站上快速原型化和部署工作流。
開發(fā)人員還可以與其他 GPU 加速的 Python 庫集成,如 RAPIDS 和 CuPy ,以使用 NVIDIA 硬件并優(yōu)化處理管道。
內(nèi)置 Tensor 類支持 DLPack 和 NumPy 數(shù)組接口( __array_interface__ 和 __cuda_array_interface__ ),以與 CuPy 、 PyTorch 、 JAX 、 TensorFlow 和 Numba 庫和多維數(shù)組處理兼容。
Holoscan Tensor 對象可以與 cuSignal 和 cuCIM 一起使用,以獲得有效的信號。
下面的示例代碼演示了使用 Python API 創(chuàng)建 Holoscan 應(yīng)用程序是多么簡單。compose ()函數(shù)通過實(shí)例化運(yùn)算符并將它們連接到工作流中來定義應(yīng)用程序的整個(gè)工作流。
class BasicRadarFlow(Application): def compose(self): src = SignalGeneratorOp(self, CountCondition(self, iterations), name="src") pulseCompression = PulseCompressionOp(self, name="pulse-compression") mtiFilter = MTIFilterOp(self, name='mti-filter') rangeDoppler = rangeDopplerOp(self, name='range-doppler') cfar = CFAROp(self, name='cfar') sink = SinkOp(self, name="sink") self.add_flow(src, pulseCompression, {('x', 'x'), ('waveform', 'waveform')}) self.add_flow(pulseCompression, mtiFilter) self.add_flow(mtiFilter, rangeDoppler) self.add_flow(rangeDoppler, cfar) self.add_flow(cfar, sink)
此應(yīng)用程序的完整 Python 源代碼可在 HoloHub repository 中找到。
Holoscan Python 包可供開發(fā)者通過 Python wheels 調(diào)用 pip install holoscan。有關(guān)先決條件,請參閱 PyPI 上的說明。
C 開發(fā)人員經(jīng)驗(yàn)
Holoscan SDK 現(xiàn)在為創(chuàng)建 Holoscan 運(yùn)算符和流提供了完整的 C 應(yīng)用程序開發(fā)經(jīng)驗(yàn)。以前,創(chuàng)建 Holoscan 運(yùn)算符的唯一方法是包裝 GXF 代碼集?,F(xiàn)在,您可以使用 Holoscan SDK 直接創(chuàng)建運(yùn)算符,并輕松將其與其他 C 庫集成。了解 Holoscan User ‘ s Guide 中的本機(jī)運(yùn)算符。
多 AI 推理
Holoscan SDK 支持在同一輸入流上的多個(gè) AI 管道和多個(gè) AI 模型的并行推理。通過多 AI 推理模塊進(jìn)行的并行推理可以將性能提高約 30% ,以便在相同的時(shí)間約束下將更多模型引入推理模塊。
了解 NVIDIA Inception 成員 iCardio.ai 如何使用 NVIDIA Clara Holoscan 到 實(shí)時(shí)運(yùn)行多 AI 流水線 。
低延遲 FPGA alpha 混合
某些視頻 I / O 卡,如 AJA KONA 5 ,支持 FPGA 上的 alpha 混合。此功能可實(shí)現(xiàn)從輸入到輸出的亞毫秒視頻信號延遲傳遞。這還包括 AI 推理與 Holoscan 流混合的時(shí)間。
除了低延遲實(shí)現(xiàn)之外,這還啟用了一個(gè)安全功能,以減輕 AI 流中的故障。在 AI 管道發(fā)生故障的情況下,原始視頻源繼續(xù)從捕獲卡流到顯示器。下圖顯示了用于手術(shù)工具跟蹤的低延遲 FPGA alpha 混合工作流。有關(guān)詳細(xì)信息,請參閱 Holoscan SDK 用戶手冊 。
圖 1 :使用 AJA 卡進(jìn)行手術(shù)工具跟蹤推斷的工作流程圖
霍洛維茲
Holoscan SDK v0.4 版本在所有示例應(yīng)用程序管道中都利用了 Holoviz 。以前 OpenGL 可視化運(yùn)算符支持的功能是通過使用 Vulkan 的 Holoviz 啟用的。該操作符易于配置,可處理 RGB / RGBA 圖像、遮罩、幾何圖元和文本的合成、混合和可視化。
它還支持無頭渲染和流式輸出,以及繞過桌面合成器的模式延遲。
HoloHub 公司
此版本引入了名為 HoloHub 的新存儲(chǔ)庫。作為一個(gè)公共存儲(chǔ)庫,HoloHub 托管了一組示例應(yīng)用程序和操作員,并發(fā)布開發(fā)人員社區(qū)提供的貢獻(xiàn)。
通過 HoloHub , NVIDIA 合作伙伴(包括傳感器供應(yīng)商)可以實(shí)施 Holoscan 支持,并將其分發(fā)給社區(qū),以便快速實(shí)施新的處理工作流。
開始使用 Holoscan SDK
開始使用 Holoscan SDK 0.4 的最快方法是在 Holoscan 開發(fā)工具包或 x86 設(shè)備上運(yùn)行 Holoscan 容器中的示例和示例應(yīng)用程序。此更新的容器使用運(yùn)行時(shí)配置來測試當(dāng)前應(yīng)用程序。它還提供 C 和 Python 開發(fā)工具和示例,以修改和創(chuàng)建新的處理工作流。
Holoscan SDK 可通過 PyPi 為 Python 3.8 至 3.11 以及 Ubuntu 20.04 的 Debian 軟件包提供。
對于希望構(gòu)建 Holoscan SDK 的開發(fā)人員,源代碼可以通過 nvidia-holoscan GitHub repository 的 Apache 2 許可證獲得。
*本文轉(zhuǎn)自 NVIDIA英偉達(dá)