Я пытаюсь скомпилировать код на GCC, который использует OpenACC для разгрузки на графический процессор NVIDIA, но я не смог найти аналогичный вариант компилятора для упомянутого выше. Есть ли способ сказать GCC быть более подробным для всех операций, связанных с разгрузкой?Имеет ли GCC аналогичный параметр для pgcc -Minfo = accel?
ответ
К сожалению, GCC пока не предоставляет удобный интерфейс для такой информации (он находится в длинном списке TODO ...).
Что вам нужно сделать, это посмотреть файлы дампа, созданные -fdump-tree-[...]
, для нескольких задействованных компиляторов, и собрать информацию таким образом, что требует понимания внутренних компонентов GCC. Ясно не совсем идеально: -/- и исправления приветствуются, вероятно, это не тот ответ, на который вы надеялись.
Как правило, для компилятора достаточно тривиально создавать диагностические сообщения для неправильного синтаксиса в исходном коде («ожидается [...] до/после/вместо [...]»), но то, что вы ищет диагностические сообщения для неудачных оптимизаций и т. д., которые гораздо сложнее производить в форме, которая действительно полезна для пользователя, и до сих пор мы (то есть разработчики GCC) не смогли потратить необходимое количество время на это.
Вот что я подумал. В конце концов, вся работа OpenACC по-прежнему очень развита в GCC. Флаг компилятора, который будет генерировать отладочный вывод, такой как «Найденная область acc в файле x на линии y и созданный код ядра для целевой нагрузки nvptx», будет очень полезен для начала работы. Я не в состоянии производить какие-либо полезные исправления, поскольку я не знаю много о компиляторах или C в целом. –