Исполняемый файл AMD HIP с неопределенными символами во время выполнения

Я хочу использовать инфраструктуру AMD HIP для своих самописных ядер графического процессора. Я делаю это с помощью сторонней библиотеки, которая берет на себя ответственность за получение кода и его компиляцию с помощью HIP (и дополнительных серверных частей, если это необходимо). Техническая установка выглядит следующим образом:

  • Код ядра скомпилирован в статическую вспомогательную библиотеку с включенной связкой AMD HIP и набором инструментов (CMake:)
  • Эта вспомогательная библиотека затем подключается к основной части нашей собственной библиотеки, которая является общей библиотекой.
  • Затем эта основная часть соединяется с окончательной разделяемой библиотекой, которая поставляется в конце.

Таким образом, в процессе сборки у нас есть 3 разные библиотеки, которые связаны друг с другом. Процесс сборки завершается без каких-либо ошибок, так как во время компиляции и компоновки ошибок нет. Однако, когда я теперь хочу использовать эту библиотеку, я получаю следующую ошибку во время выполнения:.

Поскольку раньше код даже не правильно связывался, я добавил эти два флага в CMake, что сделало его успешной сборкой (как было предложено другими на GitHub):. Однако библиотека по-прежнему не запускается из-за этой ошибки неопределенного символа во время выполнения. Проверка созданных библиотек с помощьюпоказывает U передчто заставляет меня задаться вопросом, почему это так. Разве это не должно быть как-то определено при связывании с набором инструментов HIP?

Итак, мой вопрос: сталкивался ли кто-нибудь с такой же проблемой при попытке использовать AMD HIP в нескольких библиотеках, связанных друг с другом. Может ли это быть проблемой с gcc и clang HIP? Или есть ли у меня шанс получить более подробную информацию, которая поможет мне понять, что делать сейчас. Спасибо!

0 ответов

Другие вопросы по тегам