使用 FastAPI 建構機器學習微服務
使用微服務架構部署應用程式有幾個優點: 更容易的主系統內建、更簡單的測試和可重用的代碼元件。FastAPI 最近已經成為用 Python 開發微服務的最流行的 web 架構之一。FastAPI比Flask (Python 中一個常用的 web 架構) 要快得多,因為它是基于 Asynchronous Server Gateway Interface (ASGI) 而不是 Web Server Gateway Interface (WSGI) 上建構的。
- 什麼是微服務 -
微服務定義了建構軟體應用程式的架構群組織方法。微服務的一個關鍵方面是它們是分布式的,并且具有松散耦合。實作更改不太可能破壞整個應用程式。
您還可以将使用微服務架構建構的應用程式視為由幾個通過應用程式程式設計接口 (API) 進行通信的小型獨立服務組成。通常,每個服務都由一個較小的、自包含的團隊擁有,負責在必要時實作更改和更新。
使用微服務的一個主要好處是,它們使團隊能夠快速地為其應用程式建構新元件。這對于與不斷變化的業務需求保持一緻至關重要。
另一個好處是它們使按需擴充應用程式變得多麼簡單。企業可以加快上市時間,以確定不斷滿足客戶的需求。
使用動态參數構造 CUDA 圖
自從在 CUDA 10 中引入以來,CUDA 圖已用于各種應用程式。圖将一組 CUDA 核心和其他 CUDA 操作組合在一起,并使用指定的依賴樹執行它們。它通過結合與 CUDA 核心啟動和 CUDA API 調用相關的驅動活動來加快工作流程。如果可能的話,它還加強了對硬體加速的依賴,而不是僅僅依賴 CUDA 流和事件。
構造 CUDA 圖有兩種主要方法:顯式API調用和流捕獲。
- 使用顯式API調用構造CUDA圖 -
通過這種方式構造 CUDA 圖,由 CUDA 核心和 CUDA 記憶體操作形成的圖的節點通過調用 cudaGraphAdd*Node API 添加到圖中,其中*替換為節點類型。節點之間的依賴關系通過 API 顯式設定。
使用顯式 API 構造 CUDA 圖的好處是 cudaGraphAdd*Node API 傳回節點句柄 (cudaGraphNode_t) 可以用作未來節點更新的引用。例如,可以使用 cudaGraphExecKernelNodeSetParams 以最小的代價更新執行個體化圖中核心節點的核心啟動配置和核心函數參數。
缺點是,在使用 CUDA 圖來加速現有代碼的場景中,使用顯式 API 調用構造CUDA圖通常需要大量的代碼更改,特别是關于代碼的控制流和函數調用結構的更改。
*本文轉自 NVIDIA英偉達