Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - CUDA - Пример13 июня 2011Оглавление: 1. CUDA 2. Программная архитектура 3. Оборудование 4. Ограничения 5. Особенности и спецификации различных версий 6. Пример 7. CUDA как предмет в вузах Этот пример кода на C загрузки текстур из изображения в массив на GPU: cudaArray* cu_array; texture<float, 2> tex; // Allocate array cudaMalloc, width, height ); // Copy image data to array cudaMemcpy; // Bind the array to the texture cudaBindTexture; // Run kernel dim3 blockDim; dim3 gridDim; kernel<<< gridDim, blockDim, 0 >>>; cudaUnbindTexture; __global__ void kernel { unsigned int x = blockIdx.x*blockDim.x + threadIdx.x; unsigned int y = blockIdx.y*blockDim.y + threadIdx.y; float c = texfetch; odata = c; } Пример программы на языке Python, перемножающий матрицы средствами GPU. Взаимодействие идёт с использованием PyCUDA import pycuda.driver as drv import numpy drv.init dev = drv.Device ctx = dev.make_context mod = drv.SourceModule(""" __global__ void multiply_them { const int i = threadIdx.x; dest = a * b; } """) multiply_them = mod.get_function a = numpy.random.randn.astype b = numpy.random.randn.astype dest = numpy.zeros_like multiply_them( drv.Out, drv.In, drv.In, block=) print dest-a*b Просмотров: 7253
|