0
如果我有Cuda代碼的設備ptr,我可以在cl :: Kernel中使用它嗎?我可以將cl :: Buffer傳遞給Cuda內核嗎? (可以說你有傳統的Cuda代碼,你想導入一個opencl項目,例如?)可以使用Cuda設備指針代替cl :: Buffer嗎?
如果我有Cuda代碼的設備ptr,我可以在cl :: Kernel中使用它嗎?我可以將cl :: Buffer傳遞給Cuda內核嗎? (可以說你有傳統的Cuda代碼,你想導入一個opencl項目,例如?)可以使用Cuda設備指針代替cl :: Buffer嗎?
簡單的答案,NO。
它們是完全不同的庫,使用一個指針到另一個指針會崩潰你的應用程序。您可以嘗試投射它,但行爲完全未知。
這是我的想法,但你有沒有參考不可能? – IdeaHat
@MadScienceDreams:NVIDIA GPU(DirectX,OpenGL,OpenCL,OpenGL)中的每個上下文都有自己的虛擬地址空間,由主機驅動程序管理。指針和緩衝區不可移植,除非有明確的互操作API允許映射資源。 OpenCL和CUDA之間沒有辦法進行互操作 - 一切都是不同的,運行時,編譯器。即使PTX彙編代碼不可移植(OpenCL和CUDA具有不同的特殊寄存器)。 – talonmies
@talonmies謝謝,這是非常豐富的! – IdeaHat