За какое минимальное количество операций можно вычислить полином?

st256
Сообщений: 48
Зарегистрирован: 26 дек 2011, 21:00

За какое минимальное количество операций можно вычислить полином?

Сообщение st256 » 19 окт 2013, 15:23

Странно ваше недоверие.


Это не вопрос веры. Это личный опыт, полученный в результате многолетней (очень многолетней) практики.

Также для intel архитектуры [url=http://download.intel.com/design/intelxscale/31628302.pdf]http://download.intel.com/design/intelxscale/31628302.pdf[/url]
таблица 13.4.4 покажет (пишу грубо точнее смотрите таблицу) что ADD занимает 1 такта MUL занимает 3


Верю! Даже смотреть не буду. Знаете почему? Потому, как Intel среди DSP-инженеров - синоним неприличного ругательства. Там еще и не такое может быть.

Ну помилуйте, я Вам привожу в пример проц, который стоит в каждом сотовом телефоне (ну или стоял в каждом сотовом телефоне, пока я разрабатывал сотовые телефоны). А где стоит Intel? На одну семью приходится несколько сотовых телефонов и только один ПиСюк. И абсолютно точно, в нем стоит AMD, а не Intel. Так как он дешевле и игрушки на нем шустрее работают.

Конвейер тут как раз важен - он частично позволяет выровнять производительность загружая разные ALU.


Думаю, Вы немного путаете конвейерность с суперскалярностью. Плохо знаю, как это работает в недоразумении под кодовым названием Intel (я - человек серьезный и чушью не занимаюсь), но почти уверен, что никто там ничего не перераспределяет между АЛУ. Аргументировать? Пожалуйста!

На Вашем компе я, думаю, не менее 2-х ядер. А это гораздо круче отдельных АЛУ. Запустите какую-нибудь мощную задачу в Matlabe и посмотрите в диспетчере задач распределение производительности между ядрами. Она поделиться между ними. При 2-х ядрах - 50% на 50%. При чем, если производительность одного ядра возрастет до, например, 80%, то производительность другого в этот момент опустится, соответственно, до 20%. На сегодня разделять произвольный алгоритм на два параллельных не умеет никто. Существуют ли случаи, когда задействованы все ядра по максимуму? Да. Но это, когда программист сам делит алгоритм между ядрами в ручную. Делит и матерится. Поверьте старому, заслуженному делителю производительности между АЛУ, ядрами, процессорами и проч.

Современная тенденция иметь несколько (например три) ALU на процессоре что позволяет выполнять разные оптимизации вроде сспекулятивных вычислений.


Скажите это интеловцам. Бабаяну например. Вместе посмеемся. Я ему, правда, говорил уже

Значит алгорит Винограда - лучший на данный момент?


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

в алгоритме БПФ происходит когерентное накопление ошибок округления при умножении и сложении. Однако данный эффект оказывает сколь-нибудь существенное влияние при арифметике с фиксированной точкой и представлении чисел с количеством разрядов менее 8-ми.


показывает, что автор никогда не реализовывал БПФ. Эффект накопления ошибок округления настолько силен, что не имеет смысла реализовывать БПФ длиннее 256 отсчетов даже при 16-битной арифметике. Какие к бису 8 разрядов? А в остальном так оно и есть. Количество перемножений важно, но определяет далеко не все.
Последний раз редактировалось st256 28 ноя 2019, 06:50, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

За какое минимальное количество операций можно вычислить полином?

Сообщение folk » 19 окт 2013, 19:28

st256 писал(а):Source of the post
На Вашем компе я, думаю, не менее 2-х ядер. А это гораздо круче отдельных АЛУ. Запустите какую-
Современная тенденция иметь несколько (например три) ALU на процессоре что позволяет выполнять разные оптимизации вроде спекулятивных вычислений.

Скажите это интеловцам. Бабаяну например. Вместе посмеемся. Я ему, правда, говорил уже

При чем тут круче. Мы говорим об ALU - значит разговор об одном ядре. (Я не собираюсь говорить о крутизне процессоров - хотите посмотрим на примере вашего). Давайте посмотрим внимательней на TMS320C5509A - что мы видим 40 битное ALU способное работать на 200Mhz и 17 битный умножитель на такой же частоте. Мне очевидно что такая разница в длине чисел как раз и происходит из за сложности реализации умножения - если бы делали умножение такой же длины не уложились бы в такт.
Интеловцы и Бабаян это прекрасно понимают. Что смешного не совсем понял - именно так и реализуется спекулятивное вычисление в некоторых RISC.
Ну а если вы общаетесь с Бабаяном то знаете и кто делал умножители в Эльбрусах.
Последний раз редактировалось folk 28 ноя 2019, 06:50, всего редактировалось 1 раз.
Причина: test

st256
Сообщений: 48
Зарегистрирован: 26 дек 2011, 21:00

За какое минимальное количество операций можно вычислить полином?

Сообщение st256 » 20 окт 2013, 05:54

folk писал(а):Source of the post
При чем тут круче. Мы говорим об ALU - значит разговор об одном ядре.


Распараллеливать алгоритмы на разных ядрах (а тем более - отдельных процессорах) проще, чем на разных АЛУ. Разные АЛУ используют одни и те же регистры, а вот разные ядра - разные регистры. Отдельные процессора используют даже разную память. Это как один из факторов.


Давайте посмотрим внимательней на TMS320C5509A - что мы видим 40 битное ALU способное работать на 200Mhz и 17 битный умножитель на такой же частоте. Мне очевидно что такая разница в длине чисел как раз и происходит из за сложности реализации умножения - если бы делали умножение такой же длины не уложились бы в такт.


Уложились бы. Как в русском Мультикоре или американском ZSP. Просто честное перемножение 32х32->64 обычно в DSP не нужно. Вот ребята и сэкономили.


Интеловцы и Бабаян это прекрасно понимают. Что смешного не совсем понял - именно так и реализуется спекулятивное вычисление в некоторых RISC.


Смешного тут сам обанкротившийся Бабаян. Все, что мог завалил, а деньги проел. После чего сбежал в Интел.

Ну а если вы общаетесь с Бабаяном то знаете и кто делал умножители в Эльбрусах.


Я знаю, что Эльбрус - полная фигня и будущего у него нет. Один дешевый пиар. К величайшему моему сожалению.
Последний раз редактировалось st256 28 ноя 2019, 06:50, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

За какое минимальное количество операций можно вычислить полином?

Сообщение folk » 20 окт 2013, 16:10

Что то аргументации по поводу реализации сложения и умножения за один такт не видно - какие то мантры только повторяете. Может приведете таки пример процессора где это реализовано?
st256 писал(а):Source of the post Смешного тут сам обанкротившийся Бабаян. Все, что мог завалил, а деньги проел. После чего сбежал в Интел.

Имя Бабаяна вы назвали - не я. Зачем называли если смешно? Почему же - процы они и эльбрусы делают так что не завалил и не проел. Назовите невыполненный госконтракт ради прикола.
Честно говоря у вас по моему достаточно скудное понимание процессорной проблематики, а рубите с плеча. Аккуратней надо бы.
Последний раз редактировалось folk 28 ноя 2019, 06:50, всего редактировалось 1 раз.
Причина: test

st256
Сообщений: 48
Зарегистрирован: 26 дек 2011, 21:00

За какое минимальное количество операций можно вычислить полином?

Сообщение st256 » 20 окт 2013, 17:19

folk писал(а):Source of the post
Что то аргументации по поводу реализации сложения и умножения за один такт не видно - какие то мантры только повторяете. Может приведете таки пример процессора где это реализовано?


Я уже приводил. Извольте читать внимательно. Знаете, там правила хорошего тона и проч...

Честно говоря у вас по моему достаточно скудное понимание процессорной проблематики


Упс... Тема себя, похоже, явно исчерпала. Позвольте откланяться.
Последний раз редактировалось st256 28 ноя 2019, 06:50, всего редактировалось 1 раз.
Причина: test


Вернуться в «Дискретная математика»

Кто сейчас на форуме

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