2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Программная и аппаратная реализации
Сообщение25.02.2020, 13:20 


08/11/12
152
Всегда ли аппаратная реализация алгоритма или целой программы энергетически выгоднее программной? И всегда ли аппаратная реализация быстрее программной?

Попросту говоря — всегда ли аппаратный декодер, скажем, mp3 будет быстрее и/или экономичнее программной библиотеки?

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 13:38 
Аватара пользователя


29/05/17
806
quanto в сообщении #1441427 писал(а):
Всегда ли аппаратная реализация алгоритма или целой программы энергетически выгоднее программной? И всегда ли аппаратная реализация быстрее программной?

Энергетически - нет.

quanto в сообщении #1441427 писал(а):
И всегда ли аппаратная реализация быстрее программной?

Угадайте с трех раз, кто-нибудь будет покупать дополнительные устройства в компьютер, если они работают медленнее обычной программы?

-- 25.02.2020, 13:40 --

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

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 13:44 


08/11/12
152
Mental в сообщении #1441430 писал(а):
quanto в сообщении #1441427 писал(а):
Всегда ли аппаратная реализация алгоритма или целой программы энергетически выгоднее программной? И всегда ли аппаратная реализация быстрее программной?

Энергетически - нет.


Этому есть какие-нибудь обоснования?

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 13:49 
Аватара пользователя


29/05/17
806
quanto в сообщении #1441434 писал(а):
Этому есть какие-нибудь обоснования?

Посмотрите, например, энергопотребление видеокарт.
Это самый простой пример в этом отношении. Программная реализация DirectX на обычных процессорах всегда будет работать медленней чем видео чип с программной поддержкой.
Но запущенный DirectX на процессоре будет потреблять меньше электроэнергии, чем процессор + видеокарта.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 14:05 


08/11/12
152
Mental в сообщении #1441436 писал(а):
quanto в сообщении #1441434 писал(а):
Этому есть какие-нибудь обоснования?

Посмотрите, например, энергопотребление видеокарт.
Это самый простой пример в этом отношении. Программная реализация DirectX на обычных процессорах всегда будет работать медленней чем видео чип с программной поддержкой.
Но запущенный DirectX на процессоре будет потреблять меньше электроэнергии, чем процессор + видеокарта.


Да, верно. Но это наверное потому, что процессор выполняет меньше операций за единицу времени, чем видеокарта. Если добавить процессорной мощи и избавиться от отставания процессора, то он же будет больше видеокарты жрать? Или нет?

Это, кстати, можно проверить, запустив некоторые игры в режиме программного рендеринга и сравнив энергопотребление системы. Но для этого процессор мощный нужен, вроде Ryzen 9. Как здесь: https://www.ixbt.com/news/2020/02/11/ka ... karty.html

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 14:12 


10/04/12
705
Ну... отличия от программной и аппаратной реализациями достаточно расплывчаты. Никто не мешает нам взять чип, который хорошо решают данную задачу. Удалить из него инструкции, которые никак не используються. Настроить кэши. Добавить пару новых полезных команд. В принципе на современных видеокартах уже встроены чипы для быстрого кодирования/декодирования того же видео, криптования. Просто разработка чипа это очень дорогое удовольствие, которое окупается только при массовом производстве. И, с другой стороны, есть специализированные процессоры, которые достаточно оптимально решают задачи, для решения которых они разрабатывались, которые вполне можно использовать, если уж кровь из носа.

Mental в сообщении #1441436 писал(а):
Но запущенный DirectX на процессоре будет потреблять меньше электроэнергии, чем процессор + видеокарта.


Не совсем так. При одинаковых настройках видео процессор будет выдавать условные 2 кадра в секунду, в то время как видеокарта 80. Поэтому энергопотребление проца (а оно примерно одного порядка с видеокартой) надо умножать на 40, если мы производим одинаковые вычисления.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 14:18 
Аватара пользователя


29/05/17
806
mustitz в сообщении #1441447 писал(а):
Не совсем так. При одинаковых настройках видео процессор будет выдавать условные 2 кадра в секунду, в то время как видеокарта 80. Поэтому энергопотребление проца (а оно примерно одного порядка с видеокартой) надо умножать на 40, если мы производим одинаковые вычисления.

Не забывайте про охлаждение:

Изображение

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 14:21 


10/04/12
705
Mental в сообщении #1441449 писал(а):
Не забывайте про охлаждение:


Если надо будет считать 2 кадра в секунду, то никакого охлаждения видеокарте не понадобиться. Охлаждение это максимальная загрузка.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 14:36 


16/04/19
161
Странный вопрос, т.к. программная реализация выполняется на каком-то железе, а аппаратная реализация имеет какой-то минимальный api управления.
Если взять аппаратную реализацию 100-летней давности, то она может оказаться хуже.
Или речь про аналоговый против цифрового.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 17:34 
Заслуженный участник


20/08/14
11763
Россия, Москва
Аппаратная реализация быстрее и менее потребляющая потому что при ней не делается никаких лишних действий (в идеале). Какой бы оптимальной ни была программная реализация, всегда будут некоторые действия, не несущие полезной нагрузки (в плане получения конечного результата), типа выборки команд из памяти и их декодирования. Потому аппаратно выше и скорость и КПД (энергоэффективность). Вот и всё.

-- 25.02.2020, 17:43 --

Сравнивать процессор с видеокартами довольно бессмысленно, надо жёстко контролировать много неочевидных условий, причём я не уверен что это вообще возможно. Например мало того что надо включить одинаковые алгоритмы сглаживания (в том числе и текстур) и использовать одинаковые методы арифметических операций (разрядность вычислений), так и ещё пользоваться исключительно синтетическими тестами (а не играми!) так как только в них можно точно контролировать количество и местоположение всех объектов в кадре. В общем это дело сложное и дома на коленке вряд ли решаемое без очень специальных знаний (я бы например не взялся).

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 17:50 
Заслуженный участник


27/04/09
28128
Мне кажется, вопрос хитрый и недопоставленный. Что такое «аппаратная реализация целой программы»? Много ли мы можем сказать о гипотетической аппаратной реализации например печально известного падениями Photoshop? Нужно ли сравнивать идеальные оптимизированные реализации друг с другом, и если да, то где конец оптимизациям? У меня одни вопросы, я даже не могу их все достать, руки опускаются. Было бы хорошо, если бы ТС имел за этим абстрактным вопросом какой-то более конкретный, на который люди могли бы ответить намного лучше и с меньшим потенциалом для разбирательства в мелочах такого сорта, которые не возникают на практике, а возникают только в схоластике, но имеют дурное свойство отвлекать на себя человеческий мозг.

-- Вт фев 25, 2020 19:53:42 --

Одна из деталей это действительно то, учитывается ли в «экономичнее» энергопотребление системы охлаждения и чего-нибудь ещё кроме «непосредственно схемы» (опять же могут быть спорные случаи, где проводить границу) и учитывается ли вообще энергопотребление. Может быть учитываются расходы на покупку такой реализации. Учитываются ли расходы на её создание? Ничего этого нам не было сказано, я бы лично предложил не предполагать то или иное и не спорить попусту.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 18:44 


10/04/12
705
Dmitriy40 в сообщении #1441483 писал(а):
Сравнивать процессор с видеокартами довольно бессмысленно, надо жёстко контролировать много неочевидных условий, причём я не уверен что это вообще возможно. Например мало того что надо включить одинаковые алгоритмы сглаживания (в том числе и текстур) и использовать одинаковые методы арифметических операций (разрядность вычислений), так и ещё пользоваться исключительно синтетическими тестами (а не играми!) так как только в них можно точно контролировать количество и местоположение всех объектов в кадре.


Стандарные бенчмарки типа 3DMark вроде это решают.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение25.02.2020, 19:06 
Заслуженный участник


20/08/14
11763
Россия, Москва
mustitz в сообщении #1441501 писал(а):
Dmitriy40 в сообщении #1441483 писал(а):
Сравнивать процессор с видеокартами довольно бессмысленно, надо жёстко контролировать много неочевидных условий, причём я не уверен что это вообще возможно. Например мало того что надо включить одинаковые алгоритмы сглаживания (в том числе и текстур) и использовать одинаковые методы арифметических операций (разрядность вычислений), так и ещё пользоваться исключительно синтетическими тестами (а не играми!) так как только в них можно точно контролировать количество и местоположение всех объектов в кадре.

Стандарные бенчмарки типа 3DMark вроде это решают.

Нет. Точнее да, но с относительно большой погрешностью, и не всегда предсказуемой. Сугубо ИМХО, детально я не разбирался.
Может я в этом и не совсем прав и погрешности невелики, но помню про оптимизации драйверов видеокарт под конкретные приложения (и тесты тоже), про точность вычислений видеокарт (иногда на порядки хуже процессора, FP16 или INT4 форматы чего стоят, а ведь процессоры их аппаратно не поддерживают), про возможно разные алгоритмы интерполяции текстур видеокартой и процессором (тут не уверен что нельзя насильно сделать одинаковыми), про множество ещё столь же нетривиальных вещей. Может оно всё и решается тестами, но тогда становится малопонятно что с чем сравнивается, если некоторые аппаратные возможности видеокарт не используются, а процессор намеренно перегружается лишними действиями (типа эмуляции FP16). Тесты были придуманы не для сравнения программной и аппаратной скорости вычислений, а для сравнения скорости вычислений (отрисовки 3D сцены) в играх, это разные понятия. Про GPGPU умолчу, оно вообще практически не оптимизировалось отдельно от игр.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение06.03.2020, 03:46 
Аватара пользователя


07/02/12
1433
Питер
quanto в сообщении #1441427 писал(а):
И всегда ли аппаратная реализация быстрее программной?
Очевидно при подобной постановке вопроса - не всегда. Например, можно найти такой быстрый CPU и такой медленный GPU, и такую неудобную для GPU задачу, что это не будет соблюдаться.

Но даже для DSP-ориентированных задач такое бывает. И даже на GPU+CPU на одном кристалле. В частности, у меня есть опыт экспериментирования с Intel-овским H.264-енкодером, когда несколько потоков параллельно сжимались в софте с помощью x264 быстрее, чем в харде с помощью Intel-овского (который mfx). Один поток же жался GPU быстрее. Впрочем, т.к. задача ставилась жать максимально производительно, решением оказалось жать несколько потоков в харде и несколько в софте одновременно. Коммутативность при этом, к слову, и близко не сохранялась.

Но как правило - да, и быстрее и энерго- эффективнее.

 Профиль  
                  
 
 Re: Программная и аппаратная реализации
Сообщение06.03.2020, 08:33 


27/08/16
10195
quanto в сообщении #1441427 писал(а):
Попросту говоря — всегда ли аппаратный декодер, скажем, mp3 будет быстрее и/или экономичнее программной библиотеки?
Существует нижняя граница возможностей аппаратной реализации, ограниченная программной реализацией. Так как один из вариантов аппаратной реализации - это собрать новый комп, на котором и гонять программу. :mrgreen: И в кремнии для сложных алгоритмов часто реализуют специализированные процессоры.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group