Разве функции АЭС не полностью оптимизированы?
Я разработал простую функцию для зеркального отображения изображения по горизонтали или вертикали, используя CUDA C++.
Затем я узнал, что библиотека NVIDIA Performance Primitives также предлагает функцию зеркалирования изображений.
Просто для сравнения, я рассчитал свою функцию против АЭС. Удивительно, но моя функция превзошла все ожидания (хотя и с небольшим отрывом, но все же...).
Я подтвердил результаты несколько раз с помощью таймера Windows, а также таймера CUDA.
У меня такой вопрос: не полностью ли оптимизированы функции АЭС для графических процессоров NVIDIA?
Я использую CUDA 5.0, GeForce GTX460M (Compute 2.1) и Windows 8 для разработки.
1 ответ
Я рискую не получить голосов, разместив этот ответ.:)
NVIDIA постоянно работает над улучшением всех наших библиотек CUDA. NPP - это особенно большая библиотека с 4000+ функциями для обслуживания. У нас есть реальная цель - обеспечить библиотекам полезное ускорение по сравнению с процессором, которое тестируется на всех наших графических процессорах и поддерживаемых ОС и активно улучшается и поддерживается. Рассматриваемая функция (зеркало) - это известная проблема производительности, которую мы исправим в следующем выпуске. Если вам требуется оптимизировать конкретную функцию, лучший способ установить ее приоритетность - это отправить сообщение об ошибке RFE (Запрос на улучшение) с помощью формы отправки сообщения об ошибке, которая доступна зарегистрированным разработчикам NVIDIA CUDA.
Кроме того, я не думаю, что какая-либо библиотека может быть "полностью оптимизирована". С большой библиотекой для поддержки на большой и растущей аппаратной базе работа по ее оптимизации никогда не завершается!:)
Мы призываем людей продолжать пытаться превзойти библиотеки NVIDIA, потому что в целом это продвигает современное состояние и приносит пользу вычислительной экосистеме.