Наверное я и компания NVIDIA( www.nvidia.ru/object/cuda_home_ru.html ) занимаемся обманом честных граждан ;) и запускаем программы на «ненастоящих» процессорах.
По существу:
Тягался я с OpenSource библиотекой обработки изображений DevIL (Development Image Libarary) она же когда-то OpenIL
Размер изображения Время GPU сек. Время CPU сек. Ускорение
Однократный запуск обработки
1.4Мб 0.109 0.203 1.86
3 Мб 0.188 0.422 2.245
8.6Мб 0.5 1.25 2.5
54Мб 2.69 7.844 2.642
10-и кратный запуск обработки (минимизируем затраты на чтение-запись, оцениваем работу ядер)
1.4Мб 0.656 1.906 2.9
3 Мб 1.360 4.171 3.067
8.6Мб 3.890 11.485 3.95
54Мб 10.812 71.297 6.56
если учесть, что количество ядер в более мощьных видео картах более чем на порядок больше, чем в тестируемой
и тот факт, что на момент написания программы опыт оптимизации подобных приложений у меня был незначительный, опыт использования CUDA можно считать успешным.
Судя по данным (см. ссылку) прирост может быть гораздо больше.
Есть задачи, на которых прироста производительности нет. Скажем, контрастирование изображения, в силу того, что это однопроходная задача и всё время съедается на передаче данных с/на карту.
courses.ece.uiuc.edu/ece498/al1/
Полноценный курс от компании NVIDIA для Иллиноисского университета университета
Презентации
Аудио записи лекций
Документация
Лабораторные
Диплом делал по этой теме :). Собирал под WinXP, SUSE и Ubuntu. Под линукс примерно так, как и описано выше. Всё действительно работает и работает очень хорошо. Особенно приятно, когда программа на видеокарте начинает обходить по производительности аналогичную на процессоре.
Конкретный пример:
есть форма, в которую вводятся параметры и кнопка отправки (злополучная)
на основе данных формируется Excel отчет и тут же грузится
выводится диалог на сохранение файла
файл сохраняется, нужно сгенерировать другой отчет
изменив только одно поле, а остальные поля оставить прежними
а форма заблокирована
приходится опять грузить эту форму, вбивать данные
неудобно
ладно регистрация почты, пользователь потерпит
а для людей, которые весь день с такими формами работают
такое поведение может быть неприемлемо
Да, и на «этих» ресурсах дополнительно пишут пояснение к элементам ввода, мол «Введите адрес электронной почты» или «Введите символы с картинки». Тогда заблокированная кнопка выглядит логично.
>Зачем оставлять страницу с формой открытой. Лично я этим ниразу в жизни не пользовался.
И оставляете за бортом аудиторию, которая этим пользуется. Конечно проще сказать, что они идиоты :), но всё-таки юзабилити превыше всего, и над решением стоит подумать.
У меня на работе формы поддерживаемого веб движка работают по описаному в топике принципу. Всё было хорошо, пока не понадобилось открывать результат выполнения формы в новом окне или дополнительном фрейме или отдавать весь запрос ajax-запросщику.
А что делать, если форму отправили нажав ввод в одном из полей?
Начнется отправка, а событие onClick не отработает.
И, скажем, если мы это поправим, и повесим проверку на formSubmit,
то потеряем функционал «открытие результата выполнения в новом окне»
по нажатию на Shift+Enter:
результат откроется в новом окне, а форма или кнопка отправки заблокируются.
Тоже не совсем то, что ожидается.
Не так всё просто получается :)
Остается вопрос: зачем деактивировать кнопку отправки?
В каких ситуациях это делается, чем оправдано?
В ответах на эти вопросы и кроются дальнейшие решения.
Да потому-что многим нет дела до реального содержания, точнее оно не входит в круг их понятий.
Они не видят самой сути проблемы.
Ну или я чего лишнее вижу.
Замечательная история. Очень показательная. Откоройте глаза и посмотрите вокруг. Советую также посмотреть лекции «Концепии общественной безопастности» www.pravdu.ru/lessons/petrov/
этот low-end показал себя неплохо
когда делал диплом выбирать не приходилось
был ноут с указаной картой и ни каких других альтернатив
education и production две большие разницы ;)
PS: если не хотите, что бы я издевался, говорите предметно, раскажите ваш опыт, ваши успехи
По существу:
Тягался я с OpenSource библиотекой обработки изображений DevIL (Development Image Libarary) она же когда-то OpenIL
Железо:
Core2Duo T7100 1.8GHz
Nvidia Quadro NVS 140M
Задача:
Свертка изображения ядром 3х3 и 5х5
если учесть, что количество ядер в более мощьных видео картах более чем на порядок больше, чем в тестируемой
и тот факт, что на момент написания программы опыт оптимизации подобных приложений у меня был незначительный, опыт использования CUDA можно считать успешным.
Судя по данным (см. ссылку) прирост может быть гораздо больше.
Есть задачи, на которых прироста производительности нет. Скажем, контрастирование изображения, в силу того, что это однопроходная задача и всё время съедается на передаче данных с/на карту.
Полноценный курс от компании NVIDIA для Иллиноисского университета университета
Презентации
Аудио записи лекций
Документация
Лабораторные
Вопросы 2,3, 13, 15, 16 можно и болдом выделить: пожалейте читателей :)
P.S. Пост был в персональном блоге. Автор уже всё поправил и разместил куда надо.
и о применимости нужно судить на конкретных примерах
где-то это хорошо, где-то плохо
но тема хорошая.
Надо глянуть, что в w3c по этому поводу пишут.
Конкретный пример:
есть форма, в которую вводятся параметры и кнопка отправки (злополучная)
на основе данных формируется Excel отчет и тут же грузится
выводится диалог на сохранение файла
файл сохраняется, нужно сгенерировать другой отчет
изменив только одно поле, а остальные поля оставить прежними
а форма заблокирована
приходится опять грузить эту форму, вбивать данные
неудобно
ладно регистрация почты, пользователь потерпит
а для людей, которые весь день с такими формами работают
такое поведение может быть неприемлемо
И оставляете за бортом аудиторию, которая этим пользуется. Конечно проще сказать, что они идиоты :), но всё-таки юзабилити превыше всего, и над решением стоит подумать.
У меня на работе формы поддерживаемого веб движка работают по описаному в топике принципу. Всё было хорошо, пока не понадобилось открывать результат выполнения формы в новом окне или дополнительном фрейме или отдавать весь запрос ajax-запросщику.
Начнется отправка, а событие onClick не отработает.
И, скажем, если мы это поправим, и повесим проверку на formSubmit,
то потеряем функционал «открытие результата выполнения в новом окне»
по нажатию на Shift+Enter:
результат откроется в новом окне, а форма или кнопка отправки заблокируются.
Тоже не совсем то, что ожидается.
Не так всё просто получается :)
Остается вопрос: зачем деактивировать кнопку отправки?
В каких ситуациях это делается, чем оправдано?
В ответах на эти вопросы и кроются дальнейшие решения.
я вижу автор уже это понял
Они не видят самой сути проблемы.
Ну или я чего лишнее вижу.
www.pravdu.ru/lessons/petrov/
А в Википедии всегда что-нибудь написано ;)