В рамках более крупного проекта я натолкнулся на странно непротиворечивую ошибку, которую я не могу решить, но это архетипическая ошибка «черного ящика»; при работе с cuda-gdb python -m pycuda.debug prog.py -args
работает нормально, но медленно. Если я уроню pycuda.debug, он сломается. Последовательно, в одной и той же точке при выполнении нескольких ядер.
объяснить; У меня есть (в настоящее время три) ядра, используемые в различных сетках и блочных схемах для решения «кусочков» более масштабной задачи оптимизации. Строго говоря, они должны либо работать, либо нет, так как самим функциям ничего не сказано, кроме «вот еще какие-то данные», и, кроме содержимого данных, ничего не знают, например, номер итерации, разделены ли их входные данные или нет, и до этого момента они работают отлично.
По сути, я не могу видеть, что происходит, если pycuda.debug не отображает символы отладки для GDB, но я также не вижу проблемы с pycuda.debug.
Что на самом деле делает Pycuda, чтобы я знал, что искать в коде моего ядра?