2013-10-25 22 views
3

我現在正在使用Cuda C++。但是我在使用CUDA讀取和寫入文件時遇到了問題。Cuda C++中的簡單文件I/O

如何在Cuda C++中實現文件輸入輸出過程?

我想讀取.obj文件到我的CUDA內核中。

我該怎麼辦?

+0

你的問題對我來說不是很清楚。寫入/讀取文件將在C/C++中處理。如果您想將PTX文件內聯到您的CUDA代碼中,請查看'inlinePTX' CUDA SDK示例。 – JackOLantern

回答

11

使用普通主機(C++)文件操作讀取文件。然後將數據傳輸到設備,如果您需要使用普通的cudaMalloccudaMemcpy操作。

您將無法直接在CUDA C++中實現文件I/O,因爲沒有API,因此GPU不會直接連接到文件系統。您必須通過操作系統進行文件系統服務。

+1

lol @ robert-crovella我將需要更快打字才能接近你的分數似乎!很好的答案,簡短,簡明扼要。 – GMasucci

5

對於要進入CUDA內存空間的文件,您必須在爲內存分配信息後使用CUDA memcpy命令(所以請在cudaMalloc(您的,malloc,params,here)和cudaMemcpy(您的,memcpy, params,here)在加載之後解析並保存在內存中,就像你通常在C++中那樣。

你可以嘗試讓cuda系統直接訪問文件,但這是一個過程,我不會嫉妒嘗試(從概念鍛鍊; Tibial的證明開)寫的,增益努力比將其呈現在非可行的風險。

希望幫助!:)

+3

它似乎在我打字的時候羅伯特克羅維拉回答了同樣的問題,並且毆打我的職位! – GMasucci