2016-07-29 62 views
-5

我有一個函數fun1寫在R需要很長時間才能運行。我需要運行這個函數很多次。端口R到Cuda

我已經做了一些關於在顯卡上運行R程序的閱讀,並且只提供了幾個可以運行非常特定功能(大多數矩陣操作)的軟件包。

我的問題是:有沒有辦法在圖形卡上運行fun1或任何用戶編寫的函數(並行化速度)。比如可以安裝的CUDA解釋器R,或者可以編譯cuda的R函數,這樣我所要做的就是寫一點點Cuda/C來完成我原來寫在R中的函數呢?

任何事情,一切有利於

回答

6

據我所知,沒有轉換爲任何通用的功能,CUDA或OPENCL對這一問題。我很樂意被證明是錯誤的,因爲這將是一筆巨大的財富。

GPU的函數結構與正常的CPU編程有很大不同。因此對於R.沒有CUDA解釋如果你想R中運行的東西你需要一個GPU:

  1. 寫下您想要的功能CUDA
  2. 與NVCC
  3. 鏈接它編譯它一些額外的C++代碼(可能使用Rcpp)。

你可以看看大多數可用的R GPU軟件包是如何實現的。

我使用CUDA的未發行軟件包可以看到here。如果您有興趣使用OpenCL,我目前發佈並且更積極開發的包gpuR可能會對您感興趣。我目前正在使用一個界面來允許用戶使用自定義的OpenCL。

+2

好,非常溫和的答案。但不要害羞,不要鏈接到你的。工作實例很好! –