Исполняемый файл AMD HIP с неопределенными символами во время выполнения
Я хочу использовать инфраструктуру AMD HIP для своих самописных ядер графического процессора. Я делаю это с помощью сторонней библиотеки, которая берет на себя ответственность за получение кода и его компиляцию с помощью HIP (и дополнительных серверных частей, если это необходимо). Техническая установка выглядит следующим образом:
- Код ядра скомпилирован в статическую вспомогательную библиотеку с включенной связкой AMD HIP и набором инструментов (CMake:
) - Эта вспомогательная библиотека затем подключается к основной части нашей собственной библиотеки, которая является общей библиотекой.
- Затем эта основная часть соединяется с окончательной разделяемой библиотекой, которая поставляется в конце.
Таким образом, в процессе сборки у нас есть 3 разные библиотеки, которые связаны друг с другом. Процесс сборки завершается без каких-либо ошибок, так как во время компиляции и компоновки ошибок нет. Однако, когда я теперь хочу использовать эту библиотеку, я получаю следующую ошибку во время выполнения:
Поскольку раньше код даже не правильно связывался, я добавил эти два флага в CMake, что сделало его успешной сборкой (как было предложено другими на GitHub):
Итак, мой вопрос: сталкивался ли кто-нибудь с такой же проблемой при попытке использовать AMD HIP в нескольких библиотеках, связанных друг с другом. Может ли это быть проблемой с gcc и clang HIP? Или есть ли у меня шанс получить более подробную информацию, которая поможет мне понять, что делать сейчас. Спасибо!