CUDA имеет много документации и руководств повсюду, но я не смог найти какую-либо форму инструкции по диагностике ядер, которые компилируются, но получают загадочные, расплывчатые сообщения об ошибках, такие как «неопределенный запуск»сбой "за пределами нормы" Имеют ли смысл эти блочные / сеточные структуры? "и т. д.
Можно ли как-то перехватить файл кубина и провести статический анализ структур памяти и т. д.?Прости мою нубность, но я не могу найти нигде определенного, идиотского гида.
Всем хороших выходных.
Что я ищу
- Как выделить промежуточный файл cubin
- Что с ним делать потом, чтобы выяснить, что происходит, в частности зарегистрировать и сконфигурировать память, чтобы увидеть, нарушает ли мой код какие-либо требования к оборудованию, или я просто отсутствуетошибка где-то один за другим.
Для тех, кто сталкивается с этим позже (у меня, кажется, есть привычка создавать ТАК вопросы, которые продолжают появляться в моих собственных запросах спустя месяцы ...) CUDA-Memcheck дает гораздо более интересные ответы, чем обработчики 'check error'.например,
========= Error: process didn't terminate successfully
========= Invalid __global__ write of size 4
========= at 0x00000040 in decomp
========= by thread (1,0,0) in block (0,0,0)
========= Address 0x00101024 is out of bounds
=========
========= ERROR SUMMARY: 1 error
Мне даже не нужно объяснять это сообщение об ошибке ...