Блокировка вызова ядра CUDA?

Я работаю на Arch Linux:

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

например

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

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

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

1

Решение

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

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector