@daniil14056

А где проводятся вычисления при работой с изображениями?

Сразу скажу, что никогда вообще в жизни не задумывался об устройстве видеокарт. Как бы не сталкивался, и не волновался.
А недавно узнал, что типа текстуры хранятся не в RAM а где-то в видеопамяти(вроде простая логика, но не задумывался). Сейчас изучаю подробно устройство процессоров, архитектуры. И тут на видеокарты перескочил, и не могу понять фундаментальное различие, кроме самых поверхностных. Типа какие данные где хранятся и где обрабатываются. Или почему 10000 операций сложения на GPU в 800 раз быстрее.(Точнее не почему, а почему Тогда Компилятор не оптимизирует и не переводит эти вычисления в видеокарту). Или почему я не видел таких примеров в учебниках.
К примеру, писал Нейронку год назад, по опознаванию цифр, по рисунку. С использованием с# Windows Forms, вопрос а где производились сравнения, сложения умножения? В GPU или CPU? Если в cpu, то логичнее их распараллелить в видеокарте, все эти однотипные простые операции умножения сложения. И логичнее тогда повесить ТАБУ, и во всех примерах использовать CUDA и прочие. Или в чем я ошибаюсь.
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
gbg
@gbg Куратор тега Программирование
Любые ответы на любые вопросы
Нельзя просто так взять и перенести вычисления на GPU - для этого (на 2021 год) программа должна разрабатываться отдельно, с учетом возможностей и структуры этого самого GPU.

Главный плюс GPU - высокая степень параллельности на независимых данных. GPU может одновременно делать тысячи математических операций, при условии, что результат каждой из них не зависит от результата других - что часто встречается при обработке изображений - отсюда высокая скорость вычислений.

Однако, GPU может работать только с теми данными, что загружены в видеопамять и результат записывает тоже только в видеопамять, а ее, как правило, меньше чем обычной RAM.

Отсюда следует, что выиграть, считая на GPU, можно только тогда, когда данные независимы, хорошо умещаются в память видеокарты и успевают перекачиваться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
anthtml
@anthtml
Системный администратор программист радиолюбитель
Разница в заточенности GPU именно под определенный тип операций, из-за чего при с виду одинаковой мощности некоторые данные на GPU обрабатываются гораздо быстрее чем на CPU. Это как сейчас в Биткоинах - на GPU майнить можно, но Asic-чипы делают это гораздо шустрее т.к. заточены именно под криптооперации.
Компиляторы по умолчанию делают проект который должен работать на всем, CUDA есть далеко не везде. Поэтому если хотите использовать CUDA, то читайте как ее программировать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы