]]>6113CUDA 上下文無關模塊加載
http://www.open-lab.net/zh-cn/blog/cuda-context-independent-module-loading/
Mon, 12 Dec 2022 06:46:00 +0000http://www.open-lab.net/zh-cn/blog/?p=5952Continued]]>大多數 CUDA 開發人員都熟悉 API 及其對應的 API ,用于將包含設備代碼的模塊加載到 CUDA context 中。在大多數情況下,您希望在所有設備上加載相同的設備代碼。這需要將設備代碼顯式加載到每個 CUDA 上下文中。此外,不控制上下文創建和銷毀的庫和框架必須跟蹤它們,以顯式加載和卸載模塊。 本文討論了 CUDA 12.0 中引入的上下文無關加載,它解決了這些問題。 傳統上,模塊加載總是與 CUDA 上下文相關聯。下面的代碼示例顯示了將相同的設備代碼加載到兩個設備中,然后在它們上啟動內核的傳統方法。 在每個設備上啟動內核需要檢索每個模塊,如以下代碼示例所示: 這增加了應用程序中的代碼復雜性,因為您必須檢索和跟蹤每個上下文和每個模塊類型。您還必須使用 API 顯式卸載每個模塊。 當庫或框架主要使用 CUDA 驅動程序 API 來加載自己的模塊時,