вторник, 12 марта 2013 г.

PC-X2000FN

Приобрёл для своего компьютера "домик" - корпус Lian Li PC-X2000FN. Это уже вторая (или даже третья) модификация серии X2000. В Украине такой корпус купить невозможно, поэтому пришлось на свой страх и риск заказывать на Amazon.

Я решил - если уж и собирать солидный компьютер, то и корпус нужен соответствующий, а не тот фуфел за $50, что предлагают, например, Розетка или ITbox. "Народные" системники со всякими пластиковыми вставками, неуклюжими углами, рядами панелек, решётками, кнопками, подсветками - бу-э-э, я проблевался, спасибо, мне хватило. После недели поиска в Сети я понял, что Lian Li и Fractal Design  - единственные компании, которые рассматривают компьютерный корпус не просто как коробку для комплектующих, но как нечто большее, что может нести в себе не только эстетику, но и смелые инженерные и дизайнерские решения. Собственно то, что половина систем на MDPC собрана в корпусах Lian Li, лишь подтверждает мои выводы. Ещё я так рассудил: компьютерный мир переменчив - меняются процессоры, видеокарты, интерфейсы, и за последующие 10-15 лет они сменятся не раз. А корпус? А корпус - останется, будет служить долго и переживёт ещё не одну смену поколений своей "начинки".

Во сколько мне он обошёлся, не скажу, каждый сам может поискать, если ему интересно. Упомяну лишь, что в процессе доставки посылка была задержана таможней во Львове, т. к. согласно текущему законодательству все посылки, оценочная стоимость которых превышает 300 евро, подлежат налогообложению. Оно слагается из двух частей - "мито" и ПДВ. Ставка первого равняется 10% от разницы между оценённой стоимостью и 300 евро, ставка ПДВ - 20% от этой же разницы. Через какое-то время с таможни вам приходит заказное письмо с информацией о необходимости уплаты налога и e-mail-ом таможенного брокера, на который вы начинаете стучаться. Брокер подтверждает сумму и присылает банковские реквизиты для оплаты. От 2 до 4 дней после проплаты посылка продолжает болтаться на таможне, а потом трекинг-система меняет статус на "отгружено на филию" ну а там уже как повезёт :)

Немного о трекинге. Из Германии посылка доставлялась Deutsche Post DHL, у них своя трекинг-система. После пересечения границы Украины нужно дёргать местных пересыльщиков - хорошо что DHL указал, что посылка передана meest-express, иначе я бы долго гадал, где она и что с ней. Лично я писал на почту "Миста" и указывал им tracking number что был в DHL - взамен мне выдали другой tracking number уже в их системе, и я смог отслеживать посылку на территории Украины. В целом я хоть немного и волновался, но если честно - коробка слишком большая, чтобы вот так просто "потеряться" по дороге - всё-таки это не телефон и не планшет. Общее время доставки составило около месяца, причём оно грозило растянуться на полтора, если бы я постоянно не "вызванивал" нужных людей.

Ну и напоследок несколько обзоров корпуса, кому интересно:

Lian Li PC-X2000FN Review
Lian Li PC-X2000FN Chassis Review

воскресенье, 24 февраля 2013 г.

Imperator

- Лев Осипович, скажите: Вийом - хороший мастер?
- О да, это был очень одарённый человек. А что?
- Да нет, это я так, для себя... А почему же он не стал таким же знаменитым, как Страдивари?
- Взгляните на этот инструмент. Он поразительно похож на скрипку... ой, не надо руками трогать! Простите. Знаете, он поразительно похож на скрипку Страдивари "Император". Но только похож.
- Непонятно. У Вийома был под рукой оригинал, он же мог скопировать?
- Да нет... Вийом был деловой, рассудительный человек. Чтобы понять тайны старых итальянцев, ему надо было много ночей не спать, плакать от отчаяния и счастья, безумствовать и страдать. А он...
- Так в чём же разница между ними?
- В звуке, в звуке! Он не повторим. Под него конечно можно подделаться, но Вийом  не смог понять старых голосов, а собственного голоса, одного, главного - идущего от сердца, он не нашёл. Он всю жизнь мечтал создать скрипку лучше Страдивари, но так и не создал...

вторник, 12 февраля 2013 г.

воскресенье, 10 февраля 2013 г.

Binary Format

Вот не совсем понятно, почему в стандарт С/C++ так и не был введён binary format. Мне, например, легче понять вот такой код:


чем такой:


PS: Hand-made solution

среда, 30 января 2013 г.

Republic of Gamers

Приобрёл себе материнскую плату ASUS Crosshair V Formula-Z. Это - надёжный фундамент будущей мощной системы, которую я планирую постепенно собрать в течении года. С такой платой можно играться с самыми "тяжёлыми" компонентами, не боясь что подсистема питания перегорит.

Решения с гнёздами под Intel (Maximus V Formula/Extreme) существенно дороже, как и сами процессоры Intel. Существует предыдущая версия этой материнской платы (без приставки Z и на $40 дешевле), которую я и планировал изначально приобрести, но из интереса решил поискать отличия между версиями. Как выяснилось, ничего существенного, ради чего стоит переплачивать, не оказалось... кроме одной опции: Fast Boot. Я падок на всё, что позволяет компьютеру и программам загружаться быстрее, и эта штуковина этому способствует. В ASUS Exclusive Boot Features об этой опции написано следующее:
This feature allows you to accelerate your system's boot speed with the use of a switch, allowing the system to skip POST and enter the OS at its fastest time.
Т. е. после включения пропускается куча проверок из Power-On Self Test и вся эта галиматья с логотипами BIOS и "Press DEL to enter setup", а вместо этого управление сразу передаётся загрузчику ОС. На сайте ASUS написано "shorten system boot-up time to 2-seconds". Привирают конечно, но если сложить эту фичу с оптимизациями, введёнными в Windows 8, думаю, будущая система будет загружаться очень, очень быстро - быстрее, чем всё то, на чём мне доводилось работать до сих пор.

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

1) Mobo - ASUS Crosshair V Formula-Z (уже есть).
2) CPU - AMD FX 8320 (уже есть), в будущем апгрейд на Steamroller.
3) GPU - CrossFire из двух (трёх?) AMD Radeon R9 290 (X?).
4) RAM - G.Skill DDR3-1866 32 GB (уже есть).
5) RAID0 - четыре диска Western Digital RE4 общей ёмкостью 2 TB (уже есть).
6) SSD - Samsung 840 Pro 120 GB как системный диск (уже есть) (позже - в виде PCI-Express платы) .
7) HDD Western Digital Green 4 TB (x3), общей ёмкостью 12 TB как media storage для 1080p и 4K фильмов (уже есть).
8) PSU - Seasonic SS-1000XP 1000W (уже есть).
9) Wi-Fi - ASUS PCE-N53 (уже есть)
10) Корпус Full-Tower Lian Li PC-X2000FN (уже есть).
11) Два монитора ASUS MX279H (уже есть).
12) Привод Blu-ray R/W (в high-end PC не помешает) (уже есть).

Зачем в системе 32 GB? Хороший вопрос :)

Сегодня на работе я наблюдал, как связка из Win64 + Linux из-под WMWare + VS 2010 сожрали почти 8 ГБ памяти. Поэтому 16 ГБ для комфортной работы - это сегодняшний минимум. Другие 16 ГБ я собираюсь отвести под RAM-диск, на котором будут рабочие инструменты (студия, тулзы, коды проектов) для реактивной работы. Ещё недавно прочитал на одном форуме любопытную оптимизацию, когда файл подкачки размещают прямо на RAM-диске, и все (пользователь, ОС и программы) счастливы. Полезно также перенести на RAM-диск кэш браузера и temp папок, чтобы снизить количество операций записи на SSD-диске. Вообще дисковая подсистема - самый медленный компонент любого компьютера, поэтому в первую очередь оптимизировать нужно именно её. А рецепт прост: RAM-диск - для программ первой необходимости, swap-файла и кэша, SSD - для системы и офиса, RAID - для всего остального.

четверг, 24 января 2013 г.

Betonomeshalka

Ну что же, судя по слухам, обе консоли нового поколения, Xbox и Playstation, получат CPU и GPU производства AMD. Больше никаких экзотических архитектур (Cell), в современныех реалиях оптимизировать код под кастомное железо могут позволить себе единицы. Да и оправдывают эти архитектуры себя только первые год-два, по истечении которых неумолимый технический прогресс отправляет всё на свалку.

Архитектура Bulldozer всё же получила путёвку в жизнь, я рад за AMD. Мне представляется, что цена камешков сыграла здесь определяющую роль, так как консоли продаются на грани себестоимости. В настоящее время я примеряюсь к комплектующим, планируя собрать мощную рабочую станцию вместо ноутбука, и для себя решил, что базироваться она будет тоже на платформе AMD (Intel + NVidia сильно дороже). Читая обзоры по Piledriver, у меня сложилось стойкое убеждение, что эта архитектура и её предшественница изначально затачивались под многопоточность, и часто в тестах новые FX проигрывают Core i5-i7 по двум причинам:
  1. Большинство приложений состоят из говнокода (Intel его любит).
  2. Многие приложения по сути однопоточны.
В тех же программах, где оптимизации и распараллеливанию разработчиком уделено достаточно внимания (конвертация видео, рендеринг в 3ds max, компиляция), топовые FX способны потягаться с Core i7, при том что цена этих процессоров несоизмерима. Поэтому приобретать CPU на архитектуре Bulldozer/Piledriver/Steamroller имеет смысл, да и где ещё можно поиграться с выделенными 8-ю потоками за такие деньги! Будущие Haswell будут содержать только  2 ли 4 ядра, что уныло. Я, например, хочу настоящий многопоточный рендер в Direct3D 11, а в четырёх ядрах просто негде развернуться (ещё нужны физика, AI). Думаю, что подобные мысли посещали и разработчиков next-gen (пока ещё) консолей. Уверен, Bulldozer заставит игроделов грамотно оптимизировать код своих игр, и при должном усердии архитектура раскроет свой потенциал.

Единственное, в чём AMD серьёзно проигрывает - это в энергопотреблении и тепловыделении. Техпроцесс 32 nm демонстрирует, что он уже слишком устарел.

четверг, 17 января 2013 г.

dot(N, L)

Недавно читал форумы и наткнулся на интересную оптимизацию, связанную с ограничением скалярного произведения (например, dot(N, L)) промежутком [0, 1]. Это необходимо делать в случае сложных формул освещения или записи в FP render target, где отрицательные числа могут сломать вам всю математику.

Обычно dot() в шейдерах пишется совместно с max() как в этом примере. В случае D3D assembly это трансформируется в dp3, max, GSA показывает что комбинация занимает два ALU слота. Однако, если max() заменить на clamp(0, 1), это трансформируется в dp3_sat. Radeon HD assembly показывает, что для DOT4 есть опциональный модификатор CLAMP, который работает для диапазона [0, 1]. Таким образом укладываемся в один ALU.