Да, согласен, но в рамках обзорной статьи тяжело обосновать такие утверждения, поэтому я ограничился простым сравнением топовых цифр. Может у вас есть ссылки на хорошие сравнения?
Производительность: 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 будет выгоднее.
Нет, это про другое (см. мой ответ OP), но про кольцевые буферы я тоже написал: "Широкий набор режимов адресации (с шагом, с пре- и пост-инкрементом, циклическим обходом и пр.)".
какой смысл в пересчете "на ядро", когда доступны все ядра? Только для какого-то последовательного счета в одной задаче? Но таких задач не очень много в реальной жизни;
Задачу можно распараллелить по ядрам, например при фильтрации картинок. Также в базовых станциях устанавливают многоядерные DSP, видимо для параллельной обработки нескольких звонков.
Дополнительное деление на число ядер позволяет понять насколько больше производительности мы получаем с одного ядра с DSP-архитектурой против одного с CPU-архитектурой.
откуда там взялось три дополнительных нуля в оценках в последних двух строчках? почему GIPS превратились в MIPS для CPU?
Для наглядности, иначе будет слишком много нулей после запятой для CPU :)
возьмите не самый уникальный топовый CPU и у него будет меньше GIPS, меньше ядер — но и существенно меньшая цена.
Да, сравнение дано для того чтобы максимально выпукло показать различия между архитектурами. Для low-end процессоров цифры конечно поменяются, но различие удельной производительности на несколько порядков останется, так что никакого обмана здесь нет.
Это когда код читает данные из массива с фиксированным (часто вообще с единичным) шагом. В обычных, не-DSP задачах обычно паттерн доступа менее предсказуемый, т.н. pointer chasing: обходы списков, индексации хэш-таблиц и т.п.
Да, согласен, но в рамках обзорной статьи тяжело обосновать такие утверждения, поэтому я ограничился простым сравнением топовых цифр. Может у вас есть ссылки на хорошие сравнения?
Большое спасибо, поправил. В оригинальной презентации была только вторая строчка, а первую поспешил и рассчитал неправильно.
Целью моего, достаточно абстрактного, сравнения было сопоставить эффективность 1 вычислительного ядра CPU и DSP. В случае встроенных систем число ядер подбирается под решаемую задачу (оцениваются планируемая нагрузка, время отклика и пр.), поэтому сравнивать процессоры целиком особого смысла не имеет.
Не совсем, надо ещё учесть стоимость электроэнергии. Именно поэтому в моих расчётах используется удельная стоимость (которая для указанного вами процессора будет 0.22 MIPS/$/Вт/ядро, в 200 раз хуже DSP).
Конечно, статья с этим утверждение не спорит.
Нет, это про другое (см. мой ответ OP), но про кольцевые буферы я тоже написал: "Широкий набор режимов адресации (с шагом, с пре- и пост-инкрементом, циклическим обходом и пр.)".
А уж как их к LLVM прикручивать это отдельная боль :)
Задачу можно распараллелить по ядрам, например при фильтрации картинок. Также в базовых станциях устанавливают многоядерные DSP, видимо для параллельной обработки нескольких звонков.
Дополнительное деление на число ядер позволяет понять насколько больше производительности мы получаем с одного ядра с DSP-архитектурой против одного с CPU-архитектурой.
Для наглядности, иначе будет слишком много нулей после запятой для CPU :)
Да, сравнение дано для того чтобы максимально выпукло показать различия между архитектурами. Для low-end процессоров цифры конечно поменяются, но различие удельной производительности на несколько порядков останется, так что никакого обмана здесь нет.
Да, сравнение дано исключительно в иллюстративных целях.
Это когда код читает данные из массива с фиксированным (часто вообще с единичным) шагом. В обычных, не-DSP задачах обычно паттерн доступа менее предсказуемый, т.н. pointer chasing: обходы списков, индексации хэш-таблиц и т.п.