Я - рекреационная питонистка, которая только что попала в pyCUDA. Я пытаюсь выяснить, как реализовать линейную интерполяцию (lerp) с помощью pyCUDA. Функция 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__' делать? Почему, по-вашему, вам это нужно? –
@MarkRansom: Это CUDA, и это необходимо - '__global__' обозначает драйверу компилятора NVIDIA, что функция является кодом gpu. – talonmies
Если вы хотите продолжить изучение CUDA на Python, попробуйте это. http://www.accelereyes.com/afpy.html –