Как подходить к реализации графического sprintf на стороне устройства? - PullRequest
0 голосов
/ 06 июня 2019

Я рассматриваю возможность внедрения sprintf()snprintf(), vsprintf(), vsnprintf()) - для использования в коде CUDA.Стандартная библиотека компиляторов C (и C ++) недоступна для кода CUDA на стороне графического процессора - и не может быть доступна вообще, поскольку функции ОС хоста не могут использоваться кодом, работающим на GPU, и, возможно, по другим причинам.

Мой вопрос о том, какой подход я должен использовать:

  1. Извлеките только код sprintf из glibc (то есть извлеките также все зависимости);Адаптируйте этот код для работы на GPU.
  2. Возьмите одну из автономных реализаций sprintf, доступных на GitHub ( эта популярна, например), и адаптируйте , что .
  3. Получите / создайте реализацию "variadic sprintf" с поддержкой графического процессора (которая не является частью стандартной библиотеки C или C ++) и добавьте sprintf() в качестве оболочки поверх этого.

Каковы плюсы и минусы этих трех подходов?И - есть ли другой подход, который я упускаю?

Примечания:

  • Давайте проигнорируем вопросы лицензирования или, по крайней мере, давайте не будем вдаваться в мелочность лицензирования.
  • Скорость / эффективность реализации не является проблемой, по крайней мере, ради этого вопроса, поскольку предполагаемое использование отладки.Вы можете внести это во внимание, если хотите.
...