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