Рунет: растет, растет и растет.....

По результатам сбора данных для очередного выпуска черного квадрата, живых сайтов в рунете* уже более 600 тысяч**.

Полмиллиона отмечали в ноябре, значит за 4 месяца рост на 20% (т.е. более 70% годовых). Но если посмотреть на данные прошлого марта, то увидим реальный рост примерно на 60% (точно будет известно через неделю). Откуда следует, что в последние месяцы рост ускорился.

*как и всегда в черном квадрате, когда я пишу в рунете я имею в виду длинную формулировку сайты domain.tld или www.domain.tld, где domain.tld — домен 2-го уровня в .RU и .SU.

**на самом деле, в понедельник наскребется еще несколько тысяч, в выходные лежит обычно пара процентов сайтов.

Upd: Как и обещал, к вечеру понедельника их стало 605 тысяч. Ну не несколько процентов, а полпроцента. Но несколько тысяч.

NVidia 8800GTX: скорость чтения текстур

В предыдущей части мы рассматривали чтение из глобальной памяти Geforce 8800 напрямую ("как из массива C"). При этом отсутствует кэширование, но при оптимальной схеме доступа получается (согласно указаниям NVidia) наибольшая производительность.

В то же время, скорость доступа при неоптимальном паттерне очень маленькая. Для решения этой проблемы (помимо оптимизации паттерна) NVidia CUDA предлагает доступ к памяти как к текстуре. При этом работает двумерное кэширование (оптимизированное под локальный доступ), пиковые скорости должны получаться меньше, а наихудшие варианты - наоборот лучше....

NVidia 8800GTX: пропускная способность памяти (при использовании CUDA)

После чтения руководства по NVidia CUDA, остается ощущение сложности модели программирования: треды, блоки тредов, warp-ы, иерархическая память. Непонятно, какие параметры вычислительной задачи оптимальны и какие у них вообще допустимые значения. Само руководство точных рекомендаций не дает, дает лишь приблизительные.

Из общих соображений, понятно что самая медленная часть суперкомпьютера - память. С одной стороны, теоретическая пропускная способность (bandwidth) составляет 900MHz * 384 бита * 2 (DDR) = 86.4 GB/sec. С другой стороны, раздел 6.1.1.3 руководства говорит о 200-300 циклах memory latency (при, по всей видимости,случайном доступе).

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

Читая веб и блоги: CUDA и прочее программирование на NVidia 8800

На удивление мало жизни происходит по запросу 'NVidia CUDA' в поиске по блогам и новостям. Что у Яндекса, что у Google. Мне это сильно удивительно - штука многообещающая, первая версия SDK датирована ноябрем (появилась примерно 1-го декабря), публичный SDK появился практически месяц назад, а большинство упоминаний в духе "вот вышло", в крайнем случае "читал доку". Таких текстов - навалом, маркетинг NVidia работает. Но скучно.

Помимо форумов NVidia, где заводится по 5-6 новых топиков в день, интересных публикаций немного.

Для начала: Beyond3D опубликовал большой текст про CUDA. Более подробный, чем все что я видел до сих пор (ну, кроме собственно документации).

NVidia CUDA: синхронизация и shared memory

Экспериментально выяснилось, что содержимое shared memory не сохраняется между запусками кода на G80. Всякий раз оно инициализировано, причем значения разные, то 10 (float), то 125.

Плакала идея синхронизации между мультипроцессорами путем завершения kernel. Нет, синхронизироваться можно, конечно, но если хочется сохранить результат, то надо писать в глобальную память.

Класса люкс

Второй год хожу мимо, наконец сподобился сфотографировать.

_MG_1084-1.jpg

Читая форумы: NVidia 8800GTX гигафлопсы, консистентность памяти и прочие тараканы

Третий день читаю форумы про NVidia CUDA и радуюсь сырости технологии.

  • Для начала, объявленные 520 GFLOP/s оказались обычным маркетингом The 520 GFLOPS number quoted in the technical brief includes some graphics-specific operations that are not directly accessible from CUDA. С точки зрения вычислений, гигафлопсов там 345 (считая Multiply-Add за две операции). Тоже неплохо. В реальности будет разика в два поменьше, но тоже ничего.
    Для сравнения, гипотетический (пока) 3Ghz 4-ядерный Core2Duo умеет 8 операций на такт * 4 ядра * 3Ghz = 96 GFLOP/s, а получить удастся процентов 70 от этого.
  • Отсутствие атомарных операций сильно усложняет жизнь. Предлагается в цикле писать значение в global memory, до тех пор пока не убедишься в успехе.
  • На текущий момент все вызовы - блокирующие. Т.е. нет возможности
    • Запустить счет и одновременно заливать/выливать данные для следующего/предыдущего счета.
    • Использовать две (и более) карт
    Обещают починить.
  • The performance gain you'll get by using CUDA over the graphics API largely depends on how much your application can take advantage of the shared memory. В-общем, идея понятная, но полностью противоречит всей прошлой истории GPGPU. Может оно и хорошо

Умножение матриц, серия 4: NVidia G80, CUDA, CuBLAS и RapidMind

GPGPU или зачем все эти упражнения

Все предыдущие и более ранние мои упражнения были сделаны в качестве «подхода к снаряду», нужна была baseline для более интересной задачи: вычислений общего назначения на видеокарте.

Эта тема в последние год-полтора (а особенно, в последние полгода) очень сильно нагрелась. В то же время, в варианте от NVidia hardware и софт общедоступны, покупаешь видеокарту и развлекаешься.

Приборы и материалы: NVidia CUDA и прочие

Настоящий общедоступный сдвиг произошел меньше месяца назад: 6 февраля 2006 г. вышла вторая версия NVidia CUDA Toolkit, она же первая публичная (и первая более-менее работающая), она же версия 0.8.

Эта версия доступна всем желающим без подписания NDA, следовательно результаты тестов можно открыто публиковать.

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

Рассматривались три доступных умножителя матриц:

  1. SGEMM в составе библиотеки CUBLAS.
  2. Тестовый пример от NVidia, который очень подробно разобран в документации.
  3. Реализация SGEMM от RapidMind.

Vista или нет ?

Провел выходные за переразбивкой дисков и переустановкой виндов. Заодно попробовал и Висту.

За:

  • есть драйвера под мой старый принтер Canon S9000 и 64-битную ОС (под XP x64 их нет, а 64 бита для меня обязательны, памяти 8 гигов). Собственно, ради упрощения печати (а сейчас я печатаю из VMWare) все и было затеяно.
  • Размер иконок на десктопе меняется через Ctrl-колесо. Прикольно и можно подобрать хороший размер.
Против очень очень много, хотя со временем исправят:
  • Драйвера под мой RAID (Areca 1210) имеются (от Win2003), но они неподписаны. Загрузиться можно только выбрав запрет проверки подписи драйверов. А это - одна из опций загрузчика, другие: Safe mode и так далее. В результате, сделав конструкцию незагружаемой (путем установки nTune в моем случае) нельзя откатиться назад.
  • Новые системные шрифты не нравятся. Т.е. без ClearType они смотрятся совсем плохо, а с ClearType плохо смотрятся другие шрифты. Когнитивный диссонанс и болят глаза.
  • Все нововведения с юзеринтерфейсом - не понравились. Мигает, переливается, а смысла никакого не видно. 'Use windows classic folders' и, соответственно, Windows classic theme.
  • Задолбали!!! предупреждения о том, что какая-то программа очень хочет запуститься. В нормальной жизни оно, скорее всего, приемлемо, а вот при заливке софтом - ужас просто.
  • Задолбала необходимость на каждый чих делать Run As administrator. Ну ладно в Windows/system32 не пускать, это я понимаю, но в юзерские (мои личные!) файлы ?
  • EFI boot - это чудовищно. Раньше это место правилось тестовым редактором, а сейчас - bcdedit. Подозреваю, что ставить XP после Висты тоже будет мучительно.
  • dir /s WIndows
    43678 файлов в 29806 каталогах, общий объем 9.6Gb
    Чего они туда понапихали ? Для сравнения, в свежеустановленной XP - 7109 файлов и 883 мегабайта.
Пошел сносить обратно. HDTV playback мне пока без надобности, а попечатаю по старинке, из VMWare player (+XP 32 bit).

Canon EF 70-200 IS

Подвернулся случай сравнить два объектива:

Canon 70-200/2.8 IS
Canon 70-200/4 IS

На мой вкус, у младшего рисунок на не слишком контрастных объектах не хуже, а края картинки на на бесконечности и f/4 даже и изрядно получше.

Надо изучать что будет с источниками света в кадре, если все хорошо, то менять, светосилы f/2.8 ценой лишнего килограмма веса мне не надо.

На не слишком далекие объекты (3-4 метра) точность наводки автофокуса на моей камере близкая и вполне хорошая.

Да, стабилизатор на взгляд примерно одинаковый: на 200 мм и 1/30 часть кадров имеет очень хорошую резкость, а часть "приемлемую" т.е. на A5 можно печатать если нет выбора.

Картинок не будет, верьте на слово.

Update Оказывается, по мнению фотозоны, младшенький "...may well be the very best tele zoom on the market today - it is certainly the best Canon zoom lens tested locally to date". Инструментальные тесты - не главное, но спорить не буду, мне новый 70-200 тоже очень понравился.

Update Провел операцию по замене f/2.8 IS на f/4 IS. Получается примерно бесплатно, но у нового гарантия на два года.

Кто без греха, тот пусть бросит

Яндекс (в лице Яндекс.Ленты) профукивал пароли пользователей ЖЖ. С целью экономии трафика, вестимо.

Количество разума в мире постоянно, а население растет.

Update 1:

  • Судя по всему, через Яндекс-ленты была доступна часть подзамочных записей
  • В настоящий момент импорт не работает (error 404), а значит это не свежевнесенная бага, а бывшая там давно
  • Если я правильно понимаю, чинить можно только путем размножения лент. Т.е. сделав "честный" агрегатор, который авторизованые RSS-ы будет хранить персонально для юзера.

Update 2: читаем на странице импорта:

Также учтите, что скрытые (опубликованные под замком ) записи пользователей LiveJournal не будут отображены в вашей ленте.
По всей видимости, при импорте OPML (с паролями) это обходилось. Сайд-эффект описан выше.

Update 3: наверное это просто совпадение, но эта запись по прошествии 17-ти часов не находится Яндекс-Блогами по точной цитате.

Умножение матриц, серия 3: Woodcrest против Opteron, ACML против MKL, Goto BLAS против всех

Использованная в предыдущем тестировании библиотека численных методов Intel Math Kernel Library очевидно не является оптимизированной под процессоры AMD. Следовательно, нужно изучать альтернативы.

Альтернатив на сегодня видно три: это библиотека AMD Core Math Library от производителя процессора и две OpenSource библиотеки: Goto BLAS и ATLAS (Automatically Tuned Linear Algebra Software). Их и изучим.

Все бенчмарки были совершенно одинаковыми: заполнялись исходные матрицы (значениями от 0.0 до 1.0), затем вызывалась функция sgemm (для single precision) или dgemm (double), время выполнения которой и измерялось.

Кроме Dual Opteron 275, в руки попал еще сервер Dual Xeon 5140, показалось полезным сравнить две архитектуры.

Pages

Subscribe to blog.lexa.ru: все статьи