Перевод и накопление документации

Здравствуйте!
Если у кого есть переводы документации, статей, уроков на тему этого сайта, пожалуйста, сообщайте сюда. Думаю, полезно будет всем.
Если есть свои заметки, то тоже пишите сюда.
Заранее спасибо!

Forums: 

Английский язык - наше все

Как ни печально, но на русском есть очень мало (вот, появились слайды физтеховских лекций) и всегда будет мало.
А технический английский - очень прост, особенно если только читать.

а почему у вас на одних

а почему у вас на одних слайдах нарисован одноядерный CPU с производительностью 10 Gflop/s, что соответствует четвёртому пню, а на других вы цитируете Core2 Duo, который даёт ~40 Gflop/s? Более того, 3ГГц четырёх-ядерный процессор даёт 96 Gflop/s, что существенно меняет картину.

На слайде про клеточные автоматы анализ производительности алгоритма весьма наивен. Если одно обращение в память вызывает 300 тактов задержки, то 10 обращений вовсе не обязательно вызывают 10*300 тактов. Так как между ними нет зависимостей, они будут прекрасно перекрываться. Складывать задержку памяти с пропускной способностью арифметических конвейеров тоже бессмысленно --- одно перекрывается с другим, то есть нужно хотя бы брать максимум, а не сумму. Даже это скорее всего излишне, поскольку задержка в значительной степени скрывается за счёт параллелизма внутри каждого треда и особенно параллелизмом между тредами (точнее, ворпами). Вообщ, учитывать задержку в анализе производительности на GPU совсем не тривиальная задача за исключением специальных случаев. Далее, при анализе прозводительности явных схем, особенно с небольшим количеством точек в шаблоне, следует в первую очередь учитывать пропускную способность памяти. Если хорошо постараться, именно она будет узким местом.

Про клеточные автоматы.

Про клеточные автоматы. Естественно это наивная оценка. Очень-очень грубая, которая показывает, что разделяемой памятью таки надо воспользоваться. Этот слайд ориентирован на тих, кто первый раз знакомится с картой, чтобы получить какие-то представления. Конечно я не пытался провести точную оценку. Я вполне понимаю что это нетривиальная задача.
Про core2duo. По-моему, в одном ядре по две инструкции максимум за такт, значит 6gflops на ядро, значит 24 на четыре ядра. Вот в Xeon там 4 инструкции за такт, тогда да, 96 gflops.
А 10 я указал лишь порядок (ну 6, ну 12 - какая разница с высоты хотябы 200 gflops).

Core2Duo

Да, две инструкции за такт, только векторных. То бишь 128-битных.

Для single precision в 128 бит влезает 4 элемента данных, что нам дает 8 инструкций на такт в теориии. А если обозвать MAD двумя инструкциями, то значит 16 (терафлопс NVidia именно так насчитывает).

В реальности для перемножения матриц я получал 5.3 инструкции на такт для Woodcrest и 7.25 инструкций на такт (на ядро) для Core2Quad (Penrynn). Или 87 гигафлопс single precision. Вот этот текст, прямо на этом сайте: http://www.gpgpu.ru/articles/sgemm-6.html

Другой вопрос, что на очень многих задачах молотилка у C2D/C2Q упрется в шину памяти, которая не способна подтаскивать данные с такой скоростью.

И про Xeon - нет никакой существенной разницы (кроме размеров кэша) между текущими Xeon и десктопными C2D/C2Q. Ну и память с большей латентностью, впрочем FB-DIMM похоже похоронят скоро.

всё же чтобы насчитать

всё же чтобы насчитать терафлоп NVIDIA идёт несколько дальше. Если просто посчитать MAD-ы на GTX280 то получится 240 "потоковых процессоров" * 2 флопа на MAD инструкцию * 1.3 ГГц = 624 Гфлоп/с. Чтобы получить 936 Гфлоп/c, почти терафлоп, они предлагают считать ещё и MUL, который якобы можно исполнять параллельно в SFU конвеерах с той же пропускной способность в 4 такта на ворп.

Ну тут в пресс-релизе про

Ну тут в пресс-релизе про новое NCSA-шное чудо проскакивала креативная цифра в 500 гигафлопсов двойной точности на 4-горшковой Tesla. Правда в оригинале уже поправили на 345, но гугл еще находит:

http://www.google.com/search?q=%22Each+Tesla+unit+provides+500+gigaflops...

убедили

vasionok и lexa, спасибо, убедили. поменял значения на 2x24 и ~50gflops (для ровного счета).

да, но это две SSE

да, но это две SSE инструкции, что означает операции над 4-х элементными векторами чисел в одинарной точности.