Pull to refresh

Comments 15

После C67x у TI уже C66x и C7000, информация несколько подустарела

Да, сравнение дано исключительно в иллюстративных целях.

UFO landed and left these words here

А уж как их к LLVM прикручивать это отдельная боль :)

О таблице сравнения производительности:
1) какой смысл в пересчете "на ядро", когда доступны все ядра? Только для какого-то последовательного счета в одной задаче? Но таких задач не очень много в реальной жизни;
2) откуда там взялось три дополнительных нуля в оценках в последних двух строчках? почему GIPS превратились в MIPS для CPU?
3) возьмите не самый уникальный топовый CPU и у него будет меньше GIPS, меньше ядер — но и существенно меньшая цена.

какой смысл в пересчете "на ядро", когда доступны все ядра? Только для какого-то последовательного счета в одной задаче? Но таких задач не очень много в реальной жизни;

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

Дополнительное деление на число ядер позволяет понять насколько больше производительности мы получаем с одного ядра с DSP-архитектурой против одного с CPU-архитектурой.

откуда там взялось три дополнительных нуля в оценках в последних двух строчках? почему GIPS превратились в MIPS для CPU?

Для наглядности, иначе будет слишком много нулей после запятой для CPU :)

возьмите не самый уникальный топовый CPU и у него будет меньше GIPS, меньше ядер — но и существенно меньшая цена.

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

Регулярный паттерн доступа в память

Что это значит? Скачал даташит на TMS320C6713B, почитал, так и не понял что имеется ввиду.

Может быть — аппаратная поддержка кольцевых буферов?

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

Это когда код читает данные из массива с фиксированным (часто вообще с единичным) шагом. В обычных, не-DSP задачах обычно паттерн доступа менее предсказуемый, т.н. pointer chasing: обходы списков, индексации хэш-таблиц и т.п.

1) Производительность: 560 GIPS / 28 cores / 205 W = ~0.0976 GIPS / core / W, а не 0.0976 MIPS, соответственно разница с DSP составит 17 раз, а не 17 тысяч раз.
2) Цена: возьмем Intel Core i7-6950X у которого 10 ядер, TDP = 140 W, ~320 GIPS и цена $1000 в розницу, не будем делить на бессмысленные ядра, потому что мы не покупаем их по одному (только все вместе), и посмотрим, по чем мы покупаем один GIPS:
Для CPU: 1000 / 320 = $3.125 / GIPS, для DSP: 35 / 1.8 = $19.44 / GIPS. Получается, что если нужна вычислительная мощность, то CPU будет в 6.2 раза дешевле.
Поэтому DSP оправдан тогда, когда мы не можем себе позволить расходовать много энергии, но если энергия не в приоритете, а нужна высокая производительность при ограниченном бюджете, то CPU будет выгоднее. Или где здесь подвох?

Производительность: 560 GIPS / 28 cores / 205 W = ~0.0976 GIPS / core / W, а не 0.0976 MIPS, соответственно разница с DSP составит 17 раз, а не 17 тысяч раз.

Большое спасибо, поправил. В оригинальной презентации была только вторая строчка, а первую поспешил и рассчитал неправильно.

не будем делить на бессмысленные ядра потому что мы не покупаем их по одному (только все вместе)

Целью моего, достаточно абстрактного, сравнения было сопоставить эффективность 1 вычислительного ядра CPU и DSP. В случае встроенных систем число ядер подбирается под решаемую задачу (оцениваются планируемая нагрузка, время отклика и пр.), поэтому сравнивать процессоры целиком особого смысла не имеет.

Для CPU: 1000 / 320 = $3.125 / GIPS, для DSP: 35 / 1.8 = $19.44 / GIPS. Получается, что если нужна вычислительная мощность, то CPU будет в 6.2 раза дешевле

Не совсем, надо ещё учесть стоимость электроэнергии. Именно поэтому в моих расчётах используется удельная стоимость (которая для указанного вами процессора будет 0.22 MIPS/$/Вт/ядро, в 200 раз хуже DSP).

Поэтому DSP оправдан тогда, когда мы не можем себе позволить расходовать много энергии, но если энергия не в приоритете, а нужна высокая производительность при ограниченном бюджете, то CPU будет выгоднее.

Конечно, статья с этим утверждение не спорит.

На радиомодемных алгоритмах производительность приличного DSP типа TI 67XX или ADI TS201 приблизительно такая же как у одного ядра современного i5. Имеется в виду хорошо написанный С код с вставкой заклинаний для компилятора, векторные операции, фильтры, БПФ считаются с помощью оптимизированных библиотек DSPLIB и IPP соответственно, оставшиеся критичные части (Витерби/Турбо) оптимизированы с помощью интринсиков.
При этом 4-х ядерный i5 приблизительно на порядок дороже и на два порядка больше потребляет чем DSP. Так что разрыв между DSP и Intel гораздо меньше чем описано.

Да, согласен, но в рамках обзорной статьи тяжело обосновать такие утверждения, поэтому я ограничился простым сравнением топовых цифр. Может у вас есть ссылки на хорошие сравнения?

Да это понятно. Хорошие сравнения действительно сложно найти и по объективным причинам - сильно зависит от используемых алгоритмов и из-за давления маркетологов с красивыми цифрами и многими нулями которые не достижимы на практике.
Для более или менее объективной оценки можно сравнить скорости вычислений базовых алгоритмов (тот же FFT) в оптимизированных библиотеках, например упомянутые DSPLIB от TI или ADI и Intel Integrated Performance Primitives или FFTW. Для DSPLIB эта информация есть в руководствах, для IPP мне не попадалось официальных цифр, надо мерить самому.

Only those users with full accounts are able to leave comments. Log in, please.