В драйверной части IB сделано очень много такого, чтобы не ходить по уровням модели OSI, заворачивая-разворачивая пакеты, а избавиться лишнего (и задержек-оверхеда). RDMA, GPUDirect, SRP и так далее.
Из перечисленного, поверх ether есть, вроде бы, только RDMA.
Интел *очень* много сделал в области RAM bandwidth
То есть вот реально Sandy Bridge 2-канальный быстрее i7 (первого) трехканального на одной и той же памяти (одни и те же диммы).
С латентностью, понятно, ничего не сделаешь, а bw растет офигенно.
Реальные карты упираются в собственные ограничения, а не в пропускную способность шины.
Реально я видел чуть меньше 6Gb/sec на PCIe2 (x16) на AMD6990 и чуть больше 5 на GTX480. Все — PCIe2.
На новом поколении карт/шины намеривают больше, но смысл от этого не меняется. Для задач низкой арифметической интенсивности (вроде сложения векторов), прочитать из памяти — сложить — записать в память *всегда* будет эффективнее чем «прочитать из памяти в PCIe — что-то поделать на внешнем устройстве — прочитать из PCIe в память».
Смысл в таких упражнениях все равно может быть, но не ради скорости, а ради offload: читаем туда-сюда через DMA, CPU свободен, может показывать скринсейвер.
На десктопе время пользователя дороже поэкономленных 75 ватт (77 хасвелловских на полном ходу минус 2 ватта этого чипа).
Потому что 75 ватт-часов стоят, грубо, один цент в час. А время пользователя — десятки баксофф т.е. в *тысячи* раз дороже.
То есть если 77-ваттный CPU экономит несколько секунд юзерского ожидания в рабочий час — он уже окупился.
Видеокарты имеют смысл, если количество операций на элемент — большое. Потому что у них горлышко (PCIe) узкое, пересылать два вектора на видеокарту чтобы их там сложить — нет смысла.
Но таки да — хотите эффективно использовать CPU — используйте SSE/AVX. Благо, кроме векторных сложений-умножений-итп, туда постепенно много всего интересного суют (strcmp, crc32, aes, dot product и так далее).
10-ядерные Xeon E7 вышли весной 2011 года.
Отсчитываем 5 (не 10) лет назад — попадаем в Xeon серии 5000. Два ядра (Pentium-4, даже не Core2), правда частоты повыше раза в полтора.
За эти пять лет: стало в 5 раз больше ядер и стало в ~4 раза больше флопсов на такт (У westmere 2 SSE операции на такт, а P4 одно SSE-сложение или умножение делал за два такта). Делим на полтора (тактовая), получаем что серверные CPU за 5 лет ускорились в ~12 раз на массовых операциях.
Если мотать вперед от E7 (к 16-му году) — то предсказывать конечно сложно, но 4x по флопсам на такт предсказать можно уже сейчас (т.к. AVX удлинил вектор вдвое, а FMA — удвоило флопсы одной операции). Но скорее всего к 16-му году будет уже 512-битный AVX (как он уже есть в Xeon Phi)
По-моему, обсуждение зашло куда-то не туда. На десктопе (обработка фотографий) 60 гигафлопс не смотрятся. В «мае 2013» у Haswell этих гигафлопсов будет под 400 на CPU и сколько-то (по порядку — еще столько же) на его GPU. В ~70 ваттах.
Да, флопсов на ватт меньше, зато самих флопсов — на порядок больше.
То есть эти большие флопсы на ватт интересны там, где ~100 ватт на системный блок не подашь. Или нет столько питания, или нет столько охлаждения. То есть это мобильные решения во всех смыслах (носимые с аккумулятором, возимые вроде автомобильных). Ну и «встроенные в кухонный шкаф»
И таки да, всякий продвинутый Computer Vision для автомобилей, систем видеонаблюдения — будет востребован. На носимых решениях — не знаю, на тех же планшетах (мне) не хватает в первую очередь RAM, а не CPU.
У современного IB латентность сильно лучше, чем у 10G Ether (Mellanox клянется, что 0.7мкс в 56G).
У 10-гигабитного старого IB — микросекунд 6, что лучше чем 10G Ether, но непринципиально.
Из перечисленного, поверх ether есть, вроде бы, только RDMA.
То есть вот реально Sandy Bridge 2-канальный быстрее i7 (первого) трехканального на одной и той же памяти (одни и те же диммы).
С латентностью, понятно, ничего не сделаешь, а bw растет офигенно.
Примерно столько же получается тестированием AIDA64, потому я этой бенчмарке доверяю.
Что вдвое больше реальной скорости вылива данных в GTX680.
В десктопных процессорах — два, в сокете 2011 — четыре.
PCIe3 текущий — 16Gb/sec по спекам, 11Gb/sec намеривают на реальных картах.
Память: 24-27Gb/sec на двухканальном 1155, под 50Gb/sec — на 4-канальном 2011.
Оттого во всякие теслы ставят больше памяти, чем в игровые карты.
Реально я видел чуть меньше 6Gb/sec на PCIe2 (x16) на AMD6990 и чуть больше 5 на GTX480. Все — PCIe2.
На новом поколении карт/шины намеривают больше, но смысл от этого не меняется. Для задач низкой арифметической интенсивности (вроде сложения векторов), прочитать из памяти — сложить — записать в память *всегда* будет эффективнее чем «прочитать из памяти в PCIe — что-то поделать на внешнем устройстве — прочитать из PCIe в память».
Смысл в таких упражнениях все равно может быть, но не ради скорости, а ради offload: читаем туда-сюда через DMA, CPU свободен, может показывать скринсейвер.
У десятков процессоров — будут те же проблемы, что и у SMP с десятками «обычных» процессоров
А два вектора можно складывать со скоростью памяти. На socket 2011 — около 50Gb/sec.
Потому что 75 ватт-часов стоят, грубо, один цент в час. А время пользователя — десятки баксофф т.е. в *тысячи* раз дороже.
То есть если 77-ваттный CPU экономит несколько секунд юзерского ожидания в рабочий час — он уже окупился.
Но таки да — хотите эффективно использовать CPU — используйте SSE/AVX. Благо, кроме векторных сложений-умножений-итп, туда постепенно много всего интересного суют (strcmp, crc32, aes, dot product и так далее).
Отсчитываем 5 (не 10) лет назад — попадаем в Xeon серии 5000. Два ядра (Pentium-4, даже не Core2), правда частоты повыше раза в полтора.
За эти пять лет: стало в 5 раз больше ядер и стало в ~4 раза больше флопсов на такт (У westmere 2 SSE операции на такт, а P4 одно SSE-сложение или умножение делал за два такта). Делим на полтора (тактовая), получаем что серверные CPU за 5 лет ускорились в ~12 раз на массовых операциях.
Если мотать вперед от E7 (к 16-му году) — то предсказывать конечно сложно, но 4x по флопсам на такт предсказать можно уже сейчас (т.к. AVX удлинил вектор вдвое, а FMA — удвоило флопсы одной операции). Но скорее всего к 16-му году будет уже 512-битный AVX (как он уже есть в Xeon Phi)
Да, флопсов на ватт меньше, зато самих флопсов — на порядок больше.
То есть эти большие флопсы на ватт интересны там, где ~100 ватт на системный блок не подашь. Или нет столько питания, или нет столько охлаждения. То есть это мобильные решения во всех смыслах (носимые с аккумулятором, возимые вроде автомобильных). Ну и «встроенные в кухонный шкаф»
И таки да, всякий продвинутый Computer Vision для автомобилей, систем видеонаблюдения — будет востребован. На носимых решениях — не знаю, на тех же планшетах (мне) не хватает в первую очередь RAM, а не CPU.
И по качеству портится и по времени работы.
Скажем, если при выдаче паспорта в 25 и 45 лет — всех сканировать (все население), справится ли существующая реализация с библиотекой в 100М лиц?
У 10-гигабитного старого IB — микросекунд 6, что лучше чем 10G Ether, но непринципиально.
Потому что 386-й ассемблер на мобильных устройствах (подавляющей их части) — совершенно неактуален.