2013-01-02 2 views
1

Я работаю на Arch Linux:Блокировка вызова ядра CUDA?

Я читал в нескольких местах, что вызов ядра асинхронен по отношению к ЦП (немедленно вернется и позволит ЦП продолжать). Однако я не получаю такого поведения.

например.

kernel<<<blocks,threads>>>(); 
printf("print immediately\n"); 
check_cuda_error(); 

CPU кажется запереться и ничего не печатается (также ничего не выполняется) на консоль, пока ядро ​​не будет завершено. Протестировано ядрами разного времени исполнения (1s, 2s, 3s и т. Д.) И вычислениями, чтобы убедиться, что это не мое ядро.

Это проблема с драйвером? Или я неправильно истолковываю что-то

ответ

2

Я обнаружил, что, когда я бегу за пределами X (в неграфической среде), я получаю ожидаемое поведение. Моя гипотеза заключается в том, что, хотя мой GPU много работал в ядре, он не обновлял экранную графику и, следовательно, «зависал» перед печатью на консоли.

Запуск из оболочки обеспечил ожидаемые результаты, поэтому я рассматриваю свой собственный вопрос. Комментарий ниже с более глубоким пониманием, возможно, у вас есть

Смежные вопросы