Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pyCUDA: обработка длинных массивов, корреляционные функции с помощьюCUDA 
:(
    Опции темы
daemvil
Дата 30.1.2011, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.12.2010

Репутация: нет
Всего: нет



Разбираюсь с программированием в CUDA. Главная задача: построить взаимнокорреляционные функции 4х массивов чисел типа float из 21млн точек каждый.
Кое что уже наваял, только экран мигает, а потом ошибку пишет после того как добавил"const int i1 = threadIdx.y + blockIdx.y * blockDim.y;", добавил в ядро условие if и объявил сетку не 65535, а [65535,65535] , не могу понять что я не так делаю? :(

Код

import pycuda.driver as drv
import pycuda.tools
import pycuda.autoinit
import numpy
import numpy.linalg as la
from pycuda.compiler import SourceModule

mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
 const int i = threadIdx.x + blockIdx.x * blockDim.x; 
 const int i1 = threadIdx.y + blockIdx.y * blockDim.y; 
        if (i+i1 < 33553921)
dest[i1] = fmaf(a[i],a[i+i1],dest[i1]); //a[]*a[]+dest[]
__syncthreads();
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(33553921).astype(numpy.float32)
b = numpy.random.randn(33553921).astype(numpy.float32)

dest = numpy.zeros_like(a)
print "run..."
multiply_them(
        drv.Out(dest), drv.In(a), drv.In(b),
        grid=(65535,65535),
        block=(512,1,1))



вот лог:
Код


C:\Python27>kor.py
C:\Python27\lib\site-packages\pycuda\compiler.py:112: UserWarning: The CUDA compiler suceeded, but said the following:
kernel.cu
kernel.cu
tmpxft_00000fe0_00000000-3_kernel.cudafe1.gpu
tmpxft_00000fe0_00000000-10_kernel.cudafe2.gpu

  +stdout+stderr)
run...
Traceback (most recent call last):
  File "C:\Python27\kor.py", line 35, in <module>
    block=(512,1,1))
  File "C:\Python27\lib\site-packages\pycuda\driver.py", line 189, in function_call
    Context.synchronize()
pycuda._driver.LaunchError: cuCtxSynchronize failed: launch timeout
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
LaunchError: cuCtxPopCurrent failed: launch timeout
Error in sys.exitfunc:
PyCUDA WARNING: a clean-up operation failed (dead context maybe?)
cuMemFree failed: invalid context
PyCUDA WARNING: a clean-up operation failed (dead context maybe?)
cuMemFree failed: invalid context
PyCUDA WARNING: a clean-up operation failed (dead context maybe?)
cuMemFree failed: invalid context
Traceback (most recent call last):
  File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
pycuda._driver.LaunchError: cuCtxPopCurrent failed: launch timeout
PyCUDA WARNING: a clean-up operation failed (dead context maybe?)
cuModuleUnload failed: invalid context
-------------------------------------------------------------------
PyCUDA ERROR: The context stack was not empty upon module cleanup.
-------------------------------------------------------------------
A context was still active when the context stack was being
cleaned up. At this point in our execution, CUDA may already
have been deinitialized, so there is no way we can finish
cleanly. The program will be aborted now.
Use Context.pop() to avoid this problem.
-------------------------------------------------------------------

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.



Это сообщение отредактировал(а) daemvil - 30.1.2011, 21:38
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.