Friday, December 30, 2011

Прохоров учится летать


Прочитал предвыборные тезисы Прохорова. Может быть, к следующей кампании он лучше представит все то, что умеет, понимает и собирается совершить. А в этот раз получилось бездарно. Начиная от приукрашенного сравнения “белого воротничка” с фантомасом и кончая его кандидатской геополитической простотой. Сравнительные образы против Путина - фотографии и тексты, даны на каждом слайде презентации (Прохоров - справа) кроме первого, на котором с помощью множества повторений, как заклинаний, звучит абсурдный Прохоровский возглас: “власть для человека”. По определению власти это невозможно. Природа власти - подчинять и заставлять.
Другие выдающиеся призывы:
  • опираться в политике на “русскую гуманистическую традицию”. Ну да, и на хлебосольство, тогда нашу границу немедленно перейдут.
  • "инвестиции в культуру - фундамент модернизации и экономического развития". Может и согласился бы, если речь шла о культуре возделывания земли.
  • "основной приоритет государства - защита частной собственности". А кто будет государство защищать?
  • “Сколково в Калининград”, вообще выглядит как новогодний тост, и не первый.
  • на оборону столько, сколько на здравоохранение. Также мало?
  • "50% закупок у отечественных производителей". Ха, Прохоров в Уралобуви засунутый в Запорожец.
  • "выборность участковых инспекторов". Глубока демократия. Добавить прозрачность выборов подруг.
Итог: если что-то и “почитать на праздники”, так это “О первоначальном договоре” Юма, а не программку Прохорова.

Thursday, December 22, 2011

Не стало

Мама была трудолюбива, несгибаемой воли, упряма, беспощадна и пряма, с грубоватым юмором. Боролась за жизнь до последнего вздоха. Есть и останется во мне.

Friday, December 02, 2011

Песочный ноутбук


Купил HP ноутбук с i5. На третий день вдруг обнаружил в отладчике опцию показывать ymm регистры. “Да ну, не может быть. Наверное, MS в студии свою готовность демонстрирует” - подумал я. Показалось, что слишком мало времени прошло. Но первый же результат google-поиска i5 2410M подтвердил - Sandy Bridge. Надо проверять. Следующий код
  int cpu[4];
  __cpuid(cpu,1);
  printf("CPU: %sSSE2,%sSSE3,%sSSSE3,%sSSE4,%sSSE42,"
     "%sSSE4a,%sAVX,%sAVXFMA\n",
     cpu[3]&0x04000000?"+":"-",
     cpu[2]&0x00000001?"+":"-",
     cpu[2]&0x00000200?"+":"-",
     cpu[2]&0x00080000?"+":"-",
     cpu[2]&0x00100000?"+":"-",
     cpu[2]&0x00000040?"+":"-", /// :)
     (cpu[2]&0x18000000)==0x18000000?"+":"-",
     (cpu[2]&0x18001000)==0x18001000?"+":"-");
подтвердил, имею AVX
CPU: +SSE2,+SSE3,+SSSE3,+SSE4,+SSE42,-SSE4a,+AVX,-AVXFMA
Супер! 
В действительности этой проверки недостаточно, надо проверять xgetbv, чтобы узнать, поддерживает ли OS AVX, смотри Intel документ 319433-011. Проверил доступность AVX в Ubuntu (которую установил на ноутбуке, как вторую OS) простым “cat /proc/cpuinfo”, - доступны.
Пишем что-нибудь проверить производительность, например axpy Y=Y+a*X. Для начала в 32 битном режиме. Сравниваем производительность AVX кода
@@by8:
  vmulps ymm0, ymm1, REAL4 PTR [esi+ecx*4-32]
  vaddps ymm2, ymm0, REAL4 PTR [eax+ecx*4-32]
  vmovaps REAL4 PTR [eax+ecx*4-32], ymm2
  sub ecx, 8
  jg @@by8
с кодом SSE2, который почти такой же, но двух-местный. Константу размножаем вместо pshufd новой инструкцией vbroadcastss и данные выравниваем не на 16, а на 32 байта. Ускорение есть, хоть и скромное. 
Правильность результата тоже проверена. 
Будем использовать, там, где ускорения можно ждать. Хорош ноутбук!