О бульдозерах

Я редко анонсирую читаемые ссылки с веба (как бы, блин, автоматизировать выкладку закладок из Evernote в твиттыр, с удобным редактированием?), но тут - тот самый случай.

Читаю Арстехнику: Can AMD survive Bulldozer's disappointing debut?, много думаю:

  • Один FPU на два ALU мне изначально казались какой-то фиговой идеей, ибо аккуратно программируя этот самый SSE зачастую удается порядок прироста в хотспотах получить (раза три на SSE и еще столько же на 4x ядрах), не делая всю программу многопоточной. А тут выясняется еще, что старый FPU имел 3 одинаковых юнита и формально умел 3 операции на такт (ограничений я точно не знаю, но подозреваю что как у Интела - 1 load/store, 2 математики, во всяком случае всякие тесты вроде GEMM давали ~1.8 op/clock что похоже на 2 теоретических операции). А у нового - 4 юнита, но два из них целочисленные, а два - плавучка. Это что, 1 op/clock будет? Ну ладно, для GEMM спасемся FMA, а для всего остального?
  • Идея AMD в том, что вместо SSE-операций надо переползать на APU. Идея отличная, APU умеет scatter-gather, в отличие от SSE, но беспокоят такие вот мелочи:
    • Где, собственно, бульзозер с APU?
    • APU - это же OpenCL, со всеми прелестями двойной буферизации, прямо in-place не поработаешь.
    • Ну и переносимость тоже тревожит. Старый код будет работать плохо, да?
  • Порадовала мысль о том, что в "несколько-поточном" (threads меньше чем cores) приложении планировщик должен их раскидать так, чтобы часть модулей освободить от нагрузки, тогда можно у загруженных частоту поднять.
  • Вместе с тем, планировщик потоков должен еще знать, какие из threads жрут много FPU - чтобы раскидать по одному такому потоку на модуль. А откуда планировщику это знать? Должен быть какой-то API, позволяющий это сказать....
Короче, бардак какой-то с этими бульдозерами, августовские анонсы оставляли лучшее впечатление.

О теории вероятностей

Приехали два десятка китайских литиевых батареек, смотрю вот на них и думаю про теорию вероятностей.

Задача: оценить их failure rate и решить, покупать такие еще или покупать "фирму" (про которую, впрочем, failure rate я тоже не знаю).

Представим, что в партии - 10% бракованых и мы умеем их отличать разрушающим путем (разрядом). Тогда:

  • Если в прибор идет три батарейки, то вероятность что все три будут рабочие 0.93=0.73
  • Но вероятность, что из 20 все будут рабочие 0.920=0.12.
То есть даже разрядив все, я с вероятностью 0.88 эти 10% брака не поймаю и буду считать, что доля брака не 10%, а ноль.

А 20% брака дадут только половину работающих сборок по три (0.83=0.512), но чтобы поймать их с вероятностью 95% нужно спалить 13 батареек (0.813=0.055).

Наука, ети ее растак! Спалю пока пяток, дальше будет видно. Если бракованые/разряженые удастся затем отсеивать какими-то полевыми измерениями (напряжения, тока КЗ), то это решает задачу.

О юзабилити

Передайте пожалуйста аффторам нового интерфейса Сбербанк-Онлайн, чтобы убились ап стену:

  • Старые сохраненные шаблоны - не работают. С диагностикой "попробуйте позже". Ахуеть.
  • Новые шаблоны - работают, но хуже прошлых. В частности, старые шаблоны из номера счета получателя могли вытащить название (если счет в сбере же), новые - не могут, надо руками вбивать. Шагов по оплате стало как-то заметно больше, раньше я просто нажимал "подтвердить", если сумма не изменилась, а сейчас - обнажимался.
  • Отчего квитанцию ("чек") можно распечатать из списка операций по Сбербанк-онлайну, но нельзя - из списка операций по карте? Это же контринтуитивно?

В-общем, старая версия (которая еще в сентябре работала) была приемлемой, новая же - ужоснах.

Hackintosh 10.7: восстановление с Time Machine

[Оглавление раздела Hackinthosh]

С восстановлением OS X целиком с Time Machine backup на родных Маках никаких проблем нет: Time Machine должна быть видна через mDNS (Bonjour), грузимся с инсталляционного диска/флэшки (можно даже с того, с которого на данном маке поставиться нельзя) и все восстанавливаем.

С Хакинтошами все выглядит сложнее:

  • Загружаемый на PC инсталляционный диск с OS X Lion - на сегодня не существует.
  • Кроме восстановления системы, нужно еще восстанавливать загрузчик.
В результате экспериментов, родился и проверен следующий метод:

Time Machine server на FreeBSD: backup, restore, полный restore...

[Оглавление раздела Hackinthosh]

Как многие знают, Time Machine на Mac OS X 10.7 не поддерживает SMB

Пришлось осилить AFP и к нему mDNSResponder. И если с AFP все тривиально, то с mDNSResponder пришлось помудохавозиться, ибо документации к нему в сети сыскать не удалось, исключительно методом тыка разбирался.

Идеальное решение должно уметь:

  • Бэкап TimeMachine на FreeBSD-сервер.
  • Пофайловое восстановление с TimeMachine за нужную дату.
  • Накатка целого бэкапа из инсталлятора Lion/Snow Leopard

Нижеприведенный текст - для FreeBSD, для Linux/Solaris будет отличаться процедура установки пакетов, а настройка должна быть примерно такая же.

Mac OS X 10.7 Lion: Hackintosh

[Оглавление раздела Hackinthosh]

Поапгрейдить штатными средствами Хакинтош на OS X 10.7 нельзя, сделать инсталляционный диск/флэшку для 10.7 и обычного PC вроде бы тоже пока нельзя (? я не нашел).

Чтение форумов дает кучу весьма противоречивой информации, из которой скомпилировалось следущее (за основу взято вот это: xMove + MultiBeast: Install OS X 10.7 Lion on any Supported Intel Core 2 or Core i based PC).

У меня (но на вполне mainstream-железе) оно сработало.

Про iOS 5

Вкратце:

  • Stanza - не работает. Неудобно. Есть мнение, что и не будет работать, для iOS5 они так и не почесались за полгода.
  • Попробовал iBooks, читать удобно (и лучше чем Stanza, две колонки в landscape-режиме лучше чем одна), хотя поля великоваты, сувать книжки туда-сюда не так удобно. Ну хорошо хоть по клику в Safari оно предлагает открыть в iBooks.
  • Новая Safari с табами - удобная. Интересно, на телефоне оно тоже с табами?
  • AppStore, в отличие от десктопного, продолжает спрашивать пароль на каждый чих (а нафига я тот же пароль скормил iCloud-у?), апдейтить apps продолжим с десктопа.
  • Пожалел разработчиков aNote и 2Do (коих я честно купил), вполне возможно что лично я бы удовлетворился системными Notes/Reminders, если бы они были раньше.
  • Автоматический download Books/Apps без кнопки Sync - порадовал.
  • Из Newsstand полезли free apps с журналами. Журналы там внутри покупаются прямо вот одним кликом, что прикольно. Аппы обещают уведомлять о новых выпусках сами. Еще бы, за бабки то!
Общее впечатление скорее приятное, если не будет косяков, то ради Safari и auto-downloads есть смысл апдейтиться.

Трекинг почты (и таможни)

К радости всех людей доброй воли, статус "Передано таможне" (пропавший в прошлом году) вернулся в трекинг.

А дальше все как раньше: если три дня висит в "Передано таможне", то надо звонить в EMS или даже просто ехать на Варшавку.

А трекать все (и EMS и нет) теперь лучше прямо на сайте почты России: с трекинга на emspost.ru пропало время (осталась только дата), а любимый всеми трекинг на info.russianpost.ru для простых смертных тоже закрылся с сентября.

К сожалению, на сайте ПР невозможно сделать букмарку с URL отдельной посылки....

Фотобарахолка в RSS

В очередной раз починил всегдашнюю жертву апгрейда, фотобарахолку в RSS.

Раз уж она попалась мне под руку, то добавил еще один фид для любителей micro-4/3: Поиск Olympus/Panasonic/Lumix.

Остальные фиды перечислены в этом посте, не буду повторяться.

Если есть что добавить для Oly/Panas, пишите, сейчас там банально Olympus/Panasonic/Lumix в английском и русском написаниях. Естественно, для Oly туда будут попадать и пленочные камеры (а для Панаса - видео и телевизоры), но в этом потоке уже легче ловить.

P.S. Если кому нужен E-P2 - пишите, я свой хочу апгрейдить :)

О семантике C++ (продолжение)

Наши читатели подсказывают нам, что в рассмотренном ранее примере может быть алиасинг.

Действительно, если у нас такое вот:

class someShit{
        char *m_sBuffer;
        size_t m_iLimit;
        size_t m_iCounter;
};
то никто не может гарантировать, что где-то не написали:
 m_sBuffer = (char*)&m_iCounter;
И тогда даже в одном треде можно огрести полные штаны счастья.

Меняю объявление на такое:

class someShit{
        char m_sBuffer[10240];
        size_t m_iLimit;
        size_t m_iCounter;
};
И для интеловского компилятора получаю счастье, в данном примере в память лишний раз никто не лазит:
void someShit::try1()
{
        m_iCounter = 0;
        while (m_iCounter< m_iLimit && m_sBuffer[m_iCounter])
                m_iCounter++;
}
MSVC 2010 это, правда, не помогло. Так и ходит через память.

Исходный вопрос (как отключить) снимается, restrict/__restrict в помощь, ключи компиляции опять-же есть.

ISPC 1.10

ISPCшные примеры, понятно что подобранные со вкусом, дают повод задуматься:

C:\> deferred_shading.exe pp1920x1200.bin

[ispc static + tasks]:		[151.426] million cycles to render 1920 x 1200 image
[C++ serial dynamic, 1 core]:	[2883.776] million cycles to render image
				(19.04x speedup from ISPC)

C:\>mandelbrot_tasks.exe 
[mandelbrot ispc+tasks]:	[190.607] million cycles
[mandelbrot serial]:		[2133.784] millon cycles
				(11.19x speedup from ISPC)
C:\> mandelbrot.exe
[mandelbrot ispc]:		[102.830] million cycles
[mandelbrot serial]:		[276.757] millon cycles
				(2.69x speedup from ISPC)

О взаимном знании двух рук - 2

С удовлетворением спешу сообщить, что мучившая меня с апреля проблема с VTune - излечена.

Поставил C++ Studio XE 2011 SP1 (Vtune там 2011 XE Update 5) - и Hotspot Analysis (который через драйвер) - заработал. И полугода не прошло. А то так и жил на Lightweight Hotspot. И хрен с ним с Hotspot, работают Lock/Wait и Concurrency, которые раньше были удобными, а за полгода я отвык.

Это та проблема, которая could not find ClientIntC function in the tool

Инженеры Интела из двух подразделений наконец повстречались в курилке!

Pages

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