我是一名剛剛進入pyCUDA的娛樂pythonista。我想弄清楚如何使用pyCUDA實現線性插值(lerp)。 CUDA CG的功能是:http://http.developer.nvidia.com/Cg/lerp.html使用pycuda進行線性插值(lerp)
我的最終目標是從一組加權隨機點開始在pycuda中進行雙線性插值。我從來沒有爲C或CUDA編寫過程,而且我正在學習。
這是多遠,我已經得到了:
import pycuda.autoinit
import pycuda.driver as drv
import pycuda.compiler as comp
lerpFunction = """__global__ float lerp(float a, float b, float w)
{
return a + w*(b-a);
}"""
mod = comp.SourceModule(lerpFunction) # This returns an error telling me a global must return a void. :(
任何幫助將是非常美妙!
是什麼'__global__'嗎?你爲什麼認爲你需要它? – 2012-01-05 23:36:27
@MarkRansom:這是CUDA,它是必要的 - '__global__'表示NVIDIA編譯器驅動程序的函數是gpu代碼。 – talonmies 2012-01-06 00:28:05
如果您想進一步探索Python上的CUDA,請嘗試一下。 http://www.accelereyes.com/afpy.html – 2012-01-06 22:48:05