簡體   English   中英

cuda api cu和cuda有什么區別......?

[英]What is the difference between the cuda api cu… and cuda…?

例如cudaMemcpycuMemcpy 我可以看到函數定義不同,但我的意思是API。 為什么有一個api從cu...開始cu...還有一個以cuda...開頭cuda... 應該何時使用每個API?

方法名稱以cu...開頭的API就是所謂的Driver API 方法名稱以cuda...開頭的APIRuntime API

最初(直到CUDA 3.0)API已完全分離。 粗略的分類是:Runtime API更簡單,更經濟。 Driver API適用於更復雜的“低級”編程(可能還有庫開發)。

從CUDA 3.0開始,這兩種API都可以互操作。 這意味着,例如,當您使用cuMemAlloc為Driver API分配內存時,您也可以在運行時API調用中使用相同的內存,例如cudaMemcpy

主要的實際區別在於,在Runtime API中,您可以使用特殊的kernel<<<...>>>啟動語法,而在Driver API中,您可以將CUDA程序加載為“模塊”(使用cuModuleLoad方法) ),以CUBIN文件或PTX文件的形式給出,並使用cuLaunchKernel編程方式啟動這些內核。

實際上,我認為對於CUDA程序的最大部分,差異可以忽略不計:幾乎所有其他功能(內核/模塊處理除外)在兩個 API中可用,並且兩者幾乎相同。 這指的是方法( cuMemcpycudaMemcpy等,以及結構CU_eventcudaEvent等)。

有關關鍵字“CUDA Runtime Driver API”的網絡搜索可以找到更多信息,例如,訪問https://devtalk.nvidia.com/default/topic/522598/what-is-the-difference-between-runtime-and -driver-API-/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM