У меня возникла проблема с печатью из ядра pycuda: функция printf() ничего не печатает.printf с помощью PyCUDA (с использованием Kepler GPU)
Этот вопрос был поставлен here по адресу @ username_4567, а также приведенный пример here, на который указывает @harrism в его ответе. Тем не менее, я внедрил код в pycuda example и ничего не печатается (хотя без ошибок). Я предполагаю, что проблема в том, что я использую GPU Kepler, и в этом примере указывается, что он работает только на устройствах Fermi.
Кто-нибудь знает, как я могу печатать информацию из ядер pycuda, используя мой Kepler GPU? Возможно, мне удалось создать рабочий процесс, который копирует любые данные, которые я хочу распечатать на CPU, а затем печатать через Python, но я бы предпочел избежать этого!
Я искал в Интернете для тех, у кого такая же проблема, но я ничего не нашел.
Я использую Python 3.5 (сборка Anaconda), Spyder как IDE (запущен с терминала) и iMac с El Capitan. GPU - GeForce GT 755M.
привет @talonmies, большое спасибо за то, что нашли время, чтобы ответить. Я запустил первый блок кода выше - пример с применимой строкой cuda.Context.synchronize(), но я все еще ничего не распечатал. Однако, когда я запустил тот же код с терминала, он напечатал из ядра - строки «Я x.y» в вашем втором блоке выше. –
на дальнейшее исследование, что-то странное происходит с моими консолями iPython и Python: если я запустил код примера в оболочке Python (включая «cuda.Context.synchronize()»), он распечатывается как следует. Однако, когда я запускаю его в оболочке iPython, он отправляет вывод в «Ядро 1» (вкладка в окне консоли, а не в оболочке iPython), которая, как я полагаю, связана с оболочкой iPython. Так что это больше похоже на проблему iPython. Если у вас есть еще мысли, я бы с удовольствием их услышал, иначе я переключусь на использование оболочек Python, а не iPython. –