<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/izard/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя izard]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Wed, 29 Apr 2026 04:08:29 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Как запустить локально LLM, если ее веса не помещаются в [видео]память]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/904172/</guid>
      <link>https://habr.com/ru/articles/904172/?utm_campaign=904172&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Некоторые люди предпочитают пользоваться не только облачными сервисами, но и запускать LLM у себя дома. Например, так можно запустить дообученные модели без цензуры, или не посылать в облако свои личные документы. А то и запускать бесчеловечные эксперименты над LLM так, чтобы superintelligence/skynet потом это не припомнил.</p><br>
<p><img src="https://habrastorage.org/webt/yj/nm/07/yjnm07cg4sleducpuzdd0hs7va4.jpeg"></p><br>
<p>Есть много моделей, оптимизированых для быстрой работы на устройствах с небольшой памятью. Но, к сожалению, веса самых продвинутых моделей, которые играют в одной лиге с лучшими онлайн моделями, занимают сотни гигабайт. Например, 8-битные веса Deepseek R1-671B занимают 700 гигабайт, квантованые q4 — 350 гигов. Можно квантовать и в 1 бит, размер тогда будет около 100 гигов, но такая модель почти бесполезна. Еще есть много качественных finetunes на основе Mistral-Large-instruct-130B, Qwen2.5-72B, llama3.3-70B, веса которых также не помещаются в память старших моделей видеокарт.</p> <a href="https://habr.com/ru/articles/904172/?utm_campaign=904172&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 26 Apr 2025 15:59:01 GMT</pubDate>
      <dc:creator><![CDATA[izard]]></dc:creator>
      <category><![CDATA[Высоконагруженные системы]]></category><category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[llm]]></category><category><![CDATA[inference]]></category><category><![CDATA[llama.cpp]]></category><category><![CDATA[apple]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ускорение генерации токена LLM в два раза для больших контекстов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/817009/</guid>
      <link>https://habr.com/ru/articles/817009/?utm_campaign=817009&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Помимо ChatGPT и многочисленных конкурентов в облаке с веб-мордами и/или API, существует огромная экосистема для запуска LLM на собственном железе. На Huggingface на любой бюджет найдется модель для скачивания, которая влезет в видеопамять (или в RAM, можно и на CPU запускать, если пользователь терпеливый). Вчера здесь на Хабре была очень неплохая <a href="https://habr.com/ru/articles/831272/">обзорная статья</a>.<br>
<br>
Самые популярные open source тулы для локального запуска LLM — llama.cpp и vllm (и их многочисленные обертки). У них немного разные ниши, и дальше я буду писать о llama.cpp. Она поддерживает все возможные комбинации железа и ОС — Linux, MacOS, Windows; x86 CPU, Arm, Apple Silicon CPU &amp; GPU, Nvidia, AMD,… Но автор и мейнтейнер — Георгий Герганов использует для разработки Mac Studio. Почему такой выбор железа?<br>
<br>
Производительность генерации каждого токена LLM в одном потоке ограничена вычислительной мощностью в процессе построения KV-кэша (анализ промпта до генерации первого токена), и пропускной способностью памяти при генерации последующих токенов. При этом в обоих случаях очень полезно уметь быстро загружать веса из видеопамяти в ALU видеокарты (или CPU).<br> <a href="https://habr.com/ru/articles/817009/?utm_campaign=817009&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 25 Jul 2024 20:30:48 GMT</pubDate>
      <dc:creator><![CDATA[izard]]></dc:creator>
      <category><![CDATA[GPGPU]]></category><category><![CDATA[Высоконагруженные системы]]></category><category><![CDATA[Искусственный интеллект]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[llm]]></category><category><![CDATA[performance]]></category><category><![CDATA[metal api]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Новая библиотека x86 SIMD интринсиков — immintrin debug]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/450964/</guid>
      <link>https://habr.com/ru/companies/intel/articles/450964/?utm_campaign=450964&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[С каждым новым поколением процессоров Intel появляются новые и все более сложные векторные инструкции. Хотя длина вектора (512 бит) в ближайшее время расти не будет, появятся новые типы данных и виды инструкций. Например, кто сможет с первого взгляда понять, что делает такой интринсик (и соответствующая ему инструкция процессора)?<br>
<br>
Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in imm8.<br>
<br>
<pre><code class="matlab">__m512i _mm512_mask_ternarylogic_epi32 (__m512i src, __mmask8 k, __m512i a, __m512i b, int imm8)
FOR j := 0 to 15
    i := j*32
    IF k[j]
        FOR h := 0 to 31
            index[2:0] := (src[i+h] &lt;&lt; 2) OR (a[i+h] &lt;&lt; 1) OR b[i+h]
            dst[i+h]   := imm8[index[2:0]]
        ENDFOR
    ELSE
        dst[i+31:i] := src[i+31:i]
    FI
ENDFOR
dst[MAX:512] := 0
</code></pre><br>
ОК, допустим, мы разобрались, как она работает. Следующий уровень сложности — отладка кода, интенсивно использующего такие интринсики.<br> <a href="https://habr.com/ru/articles/450964/?utm_campaign=450964&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">под катом о новом средстве для отладки интринсиков</a>]]></description>
      
      <pubDate>Thu, 30 May 2019 08:58:59 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Assembler]]></category><category><![CDATA[Высоконагруженные системы]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[x86]]></category><category><![CDATA[avx-512]]></category><category><![CDATA[simd]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[CAT — Управление размером кэша процессора]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/144196/</guid>
      <link>https://habr.com/ru/companies/intel/articles/144196/?utm_campaign=144196&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Архитекторы процессоров архитектуры x86 исторически были против предоставления программистам возможности непосредственного управления кэшем. Один как-то сказал мне в 2009 году — «никогда мы этого не сделаем, кэш всегда должен быть прозрачным для программиста». Некоторые RISC процессоры представляют архитектурную возможность управления данными/кодом, который окажется в кэше. И вот, наконец-то, нечто подобное появилось и в архитектуре x86 (начиная с Broadwell*).<br/>
 <a href="https://habr.com/ru/articles/144196/?utm_campaign=144196&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 16 Feb 2016 06:56:56 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Assembler]]></category><category><![CDATA[Высоконагруженные системы]]></category><category><![CDATA[Системное программирование]]></category>
      <category><![CDATA[intel]]></category><category><![CDATA[cache]]></category><category><![CDATA[llc]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Самая медленная инструкция x86]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/244565/</guid>
      <link>https://habr.com/ru/companies/intel/articles/244565/?utm_campaign=244565&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Все знают и любят ассемблер x86. Большинство его инструкций современный процессор исполняет за единицы или доли наносекунд. Некоторые операции, которые декодируются в длинную последовательность микрокода, или ожидающие доступа к памяти могут исполняться намного дольше — до сотен наносекунд. Этот пост — о рекордсменах. Хит парад из четырех инструкций под катом, но для тех, кому лень читать весь текст, я напишу здесь, что главный злодей — [memory]++ при определенных условиях.<br/>
<br/>
<img src="https://habrastorage.org/getpro/habr/post_images/cbb/533/4fe/cbb5334fe348cabb33ef746f50c07704.jpg" alt="image"/><br/>
<br/>
КПДВ взята из документа Агнера Фога, который, наряду с двумя документами от Intel (optimization guide и architecture software development manual) содержат много полезного и интересного по теме.<br/>
 <a href="https://habr.com/ru/articles/244565/?utm_campaign=244565&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 21 May 2015 07:32:14 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Assembler]]></category><category><![CDATA[Высоконагруженные системы]]></category><category><![CDATA[Программирование]]></category><category><![CDATA[Системное программирование]]></category>
      <category><![CDATA[performance optimization]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Содержимое Intel IOT development kit]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/236179/</guid>
      <link>https://habr.com/ru/companies/intel/articles/236179/?utm_campaign=236179&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В феврале я <a href="http://habrahabr.ru/company/intel/blog/214485/">писал</a> о сборке Yocto для <a href="http://ark.intel.com/products/78919/Intel-Galileo-Board">Galileo gen1</a>, которая несколько облегчает разработку для Galileo. С тех пор прошел почти год, и у Galileo появились последователи — <a href="http://ark.intel.com/products/83137/Intel-Galileo-Gen-2-Board">Galileo gen2</a>, <a href="http://ark.intel.com/products/84574/Intel-Edison-Board-for-Arduino">Edison</a>. Про Edison (уже два месяца в <a href="https://www.sparkfun.com/categories/272">продаже</a>) надо писать отдельно, этот же пост об Intel IOT Development Kit.<br/>
<br/>
<img src="https://habrastorage.org/getpro/habr/post_images/d0a/8ca/cc8/d0a8cacc83e523473460110375b9730a.jpg" alt="image"/><br/>
<br/>
Из железок на моем рабочем столе (извините за беспорядок) он совместим с Galileo gen1, gen2 и Edison.<br/>
С декабря 2013 по октябрь 2014 я был архитектором этого продукта, и сейчас я опишу, как продвигался проект, что уже получилось, и что запланировано.<br/>
 <a href="https://habr.com/ru/articles/236179/?utm_campaign=236179&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 13 Nov 2014 11:02:45 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[galileo]]></category><category><![CDATA[edison]]></category><category><![CDATA[iot]]></category><category><![CDATA[devkitm intelmaker]]></category><category><![CDATA[интернет вещей]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Galileo developer kit для Internet Of Things и программа для разработчиков]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/214485/</guid>
      <link>https://habr.com/ru/companies/intel/articles/214485/?utm_campaign=214485&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img align="left" src="https://habrastorage.org/getpro/habr/post_images/5e0/8a8/db2/5e08a8db27cc5a5d75803598c09b5834.jpg"/>На позапрошлой неделе на Mobile World Congress президент Intel Рене Джеймс <a href="http://software.intel.com/en-us/articles/intel-developer-program-for-internet-of-things">анонсировала</a> <a href="http://software.intel.com/iot">программу</a> для разработчиков Internet Of Things. Всякие конкурсы-призы-хакатоны, короче — маркетинговая программа. Но были некоторые новости и по технической части. На MWC и Embedded World наша команда продемонстрировала некоторые новые возможности в разработке софта для IOT. Мы <a href="http://software.intel.com/en-us/iotdevkit">опубликовали</a> два бинарных образа дисков (и соответствующие <a href="http://iotdk.intel.com/">исходники</a> для самостоятельной сборки), которые позволяют серьезно сократить время, необходимое для настройки системы для разработки софта для Galileo.<br/>
 <a href="https://habr.com/ru/articles/214485/?utm_campaign=214485&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 13 Mar 2014 07:02:57 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[iot]]></category><category><![CDATA[galileo]]></category><category><![CDATA[quark]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Отчет о посещении SPS IPC Drives 2013 — немного о настоящих промышленных роботах]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/204154/</guid>
      <link>https://habr.com/ru/companies/intel/articles/204154/?utm_campaign=204154&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img align="left" src="https://habrastorage.org/getpro/habr/post_images/2a1/e72/589/2a1e72589d8853086fa7b51ed738894b.jpg" alt="image"/>На Хабре публиковалось много отчетов о посещении основных выставок IT индустрии — CeBIT, CES, MWC. Я решил написать пост о SPS IPC Drives 2013, прошедшей недавно в Нюрнберге. Тоже большая выставка, 60000 посетителей — почти как на MWC. Я езжу на SPS/IPC/Drives уже третий год (живу недалеко, и по работе полезно), и в этом посте попытаюсь описать, на какие тенденции развития отрасли я обратил внимание в этот раз. У Intel нет на этой выставке своего стенда, поэтому лично мне эта выставка нравится больше всех остальных — не надо стоять на стенде несколько дней подряд, изучая окрестности во время коротких вылазок, когда подменяет коллега, а можно вдумчиво все обойти пофотографировать и пообщаться с участниками.<br/>
<br/>
Название выставки — SPS/IPC/Drives на русский переводится как «Программируемые логические контроллеры, индустриальные ПК, и cервоприводы.» Эти три категории продуктов, и все с ними связанное и составляют большую часть продуктов и сервисов, которые демонстрируют полторы тысячи компаний-участников.<br/>
<br/>
Как и на всех IT выставках, где большая часть посетителей — мужчины, компании нанимают красивых девушек, чтобы они завлекали посетителей к их стендам. Девушек я фотографировать в этот раз не стал, а снимал только роботов, типа этого музыканта на заглавной картинке. Конечно, гуманоидных роботов было подавляющее меньшинство, а те, что были, не делали ничего полезного.<br/>
<br/>
То ли дело настоящие промышленные роботы:<br/>
 <a href="https://habr.com/ru/articles/204154/?utm_campaign=204154&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 25 Dec 2013 08:30:05 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[robotics]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Совместный запуск Linux и baremetal OS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/183576/</guid>
      <link>https://habr.com/ru/companies/intel/articles/183576/?utm_campaign=183576&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Недавно я <a href="https://github.com/izard/RTBench">выложил</a> в сеть под BSD лицензией небольшой проект на 8 килострочек C кода. Официально это коллекция бенчмарков для моих клиентов — вендоров промавтоматики. Код очень специфический, и, на первый взгляд, малоприменим за пределами узкой области PLC и <a href="http://en.wikipedia.org/wiki/Motion_control">motion control</a>. Но есть небольшая изюминка, на которой я не очень акцентировал внимание в <a href="http://software.intel.com/en-us/articles/test-suit-for-industrial-hard-real-time-apps">статье на IDZ</a>. В поставку бенчмарков включена baremetal среда для их исполнения. В этом посте я опишу, что это такое, и как ее можно использовать.<br/>
 <a href="https://habr.com/ru/articles/183576/?utm_campaign=183576&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 08 Aug 2013 05:02:08 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Системное программирование]]></category>
      <category><![CDATA[baremetal os]]></category><category><![CDATA[realtime]]></category><category><![CDATA[linux]]></category><category><![CDATA[x86]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Angry Birds на PLC?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/177153/</guid>
      <link>https://habr.com/ru/companies/intel/articles/177153/?utm_campaign=177153&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img align="left" src="https://habrastorage.org/getpro/habr/post_images/c64/b4c/1f2/c64b4c1f23331303665933466c25a86a.jpg" alt="image"/>В <a href="http://habrahabr.ru/company/intel/blog/176313/">предыдущем топике</a> я обещал подробнее описать особенности программирования промышленных PLC, и почему такое программирование все больше напоминает разработку обычного софта. О языке IEC61131-3 ST (промышленном диалекте Паскаля) я уже <a href="http://habrahabr.ru/company/intel/blog/148090/">писал</a>, также хорошим вступлением можно считать вот <a href="http://habrahabr.ru/post/139425/">этот хабратопик</a>. Этот пост — о компиляторах PLC, средах разработки, особенностях программирования и эволюции языка и экосистемы. <br/>
 <a href="https://habr.com/ru/articles/177153/?utm_campaign=177153&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 15 May 2013 09:13:15 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Компиляторы]]></category><category><![CDATA[Ненормальное программирование]]></category>
      <category><![CDATA[plc]]></category><category><![CDATA[CoDeSys]]></category><category><![CDATA[kw]]></category><category><![CDATA[pascal]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Промышленные сети в контексте четвертой промышленной революции]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/176313/</guid>
      <link>https://habr.com/ru/companies/intel/articles/176313/?utm_campaign=176313&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/storage2/e93/de0/10b/e93de010be3685c65ca21df0c476d13a.jpg"/><br/>
Сначала небольшое историческое отступление о том, что такое четвертая промышленная революция, <a href="http://www.forbes.com/sites/sap/2012/08/07/a-revolution-in-production/">анонсированная</a> в прошлом году. <br/>
<ul>
<li>Появление промышленности. Первая промышленная революция произошла в начале XIX века и была связана с массовым переходом от использования мускульной силы к энергии парового двигателя. Ключевые технологии — паровой двигатель, фабрика. Появилась возможность массового производства, но его продукты стоили дорого.</li>
<li>Массовое производство. Вторая революция случилась в начале 20 века, и ознаменовала начало дешевого массового производства. Ключевые технологии — конвейер и <a href="http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%83%D1%87%D0%BD%D0%B0%D1%8F_%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%82%D1%80%D1%83%D0%B4%D0%B0">Тейлоризм</a>. Продукты массового производства подешевели на порядок.<br/>
</li>
<li>Автоматизация. Третий переворот в промышленности произошел в 80-е годы. Станки с ЧПУ и роботы сделали современные фабрики практически безлюдными. (Аутсорсинг ручного труда в развивающиеся страны сгладил эту тенденцию.) Продукты массового производства подешевели еще на порядок (стало дешевле выкинуть, чем чинить).</li>
<li>Децентрализация. Революция четыре точка ноль происходит сейчас. Ключевая технология — конвергенция промышленности и IT, 3д принтеры. Появляется возможность производства мелкой серии или уникального продукта по цене, приближающейся к стоимости того же самого в крупной серии.</li>
</ul>Это <a href="http://www.siemens.com/innovation/apps/pof_microsite/_pof-spring-2013/_html_en/industry-40.html">немецкий взгляд</a> на 4 четыре фазы развития промышленности. Существует еще и <a href="http://www.forbes.com/sites/terrywaghorn/2011/12/12/jeremy-rifkins-third-industrial-revolution/">американский</a>, который не разделяет третью и четвертую фазы.<br/>
<br/>
Мне кажется, во вступлении я написал слишком много общих фраз и слишком мало технического хардкора. Исправлю это под катом, описав некоторые технические детали о промышленных сетях и продуктах Intel, связанных с ними (+ еще одна картинка с роботом).<br/>
 <a href="https://habr.com/ru/articles/176313/?utm_campaign=176313&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 17 Apr 2013 04:47:47 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Ненормальное программирование]]></category>
      <category><![CDATA[realtime]]></category><category><![CDATA[x86]]></category><category><![CDATA[fieldbus]]></category><category><![CDATA[ethercat]]></category><category><![CDATA[profinet]]></category><category><![CDATA[роботы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Действительно ли у каждого ядра есть «свой собственный» кэш первого и второго уровней?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/173001/</guid>
      <link>https://habr.com/ru/companies/intel/articles/173001/?utm_campaign=173001&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[У современных процессоров архитектуры Core i7 существует очевидный, документированный, но отчего-то не очень известный даже среди многих специалистов сценарий priority inversion. Его я опишу в этом посте. В нем есть код на С, три диаграммы, и некоторые подробности работы кэшей в процессорах архитектуры Core i7. Никаких покровов не срывается, вся информация давно общедоступна.<br/>
<br/>
<a href="http://en.wikipedia.org/wiki/Priority_inversion">Priority inversion</a> – ситуация, когда низкоприоритетный процесс может блокировать или замедлять высокоприоритетный. Обычно имеется в виду очередность доступа к исполнению на ядре для высокоприоритетного кода относительно низкоприоритетного. С этим должно неплохо справляться ядро ОС. Однако помимо вычислительных ядер, которые несложно распределять посредством affinity и MSI-X, в процессоре есть ресурсы, общие для всех задач – контроллер памяти, QPI, общий кэш третьего уровня, PCIe устройства. В вопросы PCIe я углубляться не буду, т.к. не являюсь экспертом в данной теме. Priority inversion на почве доступа к памяти и QPI я давно не наблюдал – пропускной способности современного многоканального контроллера как правило хватает и высокоприоритетным, и низкоприоритетным задачам. Остановлюсь на кэшах.<br/>
  <a href="https://habr.com/ru/articles/173001/?utm_campaign=173001&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 21 Mar 2013 06:46:19 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Высоконагруженные системы]]></category>
      <category><![CDATA[realtime]]></category><category><![CDATA[cache]]></category><category><![CDATA[cpu]]></category><category><![CDATA[core i7]]></category><category><![CDATA[vtune]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[x86 на производстве: high end промышленные контроллеры, Паскаль и вирусы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/148090/</guid>
      <link>https://habr.com/ru/companies/intel/articles/148090/?utm_campaign=148090&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Есть такой не очень корректный термин: PC based industrial automation. Я думаю, что он не совсем точен, так как никто, конечно, не подсоединяет станок к обычному персональному компьютеру. <s>А то вдруг зависнет, и станок отрежет что-нибудь ненужное</s>. Но рациональное зерно в этом термине есть — уже много лет среди управляющих устройств промышленной автоматизации встречаются устройства, напоминающие ПК. <br/>
<br/>
<img src="https://habrastorage.org/storage2/387/707/d7a/387707d7add248da341f52dd5de17610.jpg" alt="Simatic S7"/>Напоминающие, конечно, не внешне.<br/>
<br/>
Как и в вашем ноутбуке, в контроллере может стоять процессор Core i5, обыкновенная DRAM (только обычно с ECC), SSD диск, обычный Ethernet. Процесс загрузки тоже не отличается — BIOS загружает операционку. Как правило, операционка — RTOS. Однако иногда бывает даже Windows. Причем не всегда это Windows Embedded Compact (бывшая CE). Используется даже Windows Embedded 7, а это полноценная семерка. (Линуксы тоже встречаются)<br/>
<br/>
 <a href="https://habr.com/ru/articles/148090/?utm_campaign=148090&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 01 Oct 2012 10:48:42 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category><category><![CDATA[Ненормальное программирование]]></category>
      <category><![CDATA[realtime]]></category><category><![CDATA[x86]]></category><category><![CDATA[plc]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Intel Architecture Code Analyzer 2.0.1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/144195/</guid>
      <link>https://habr.com/ru/companies/intel/articles/144195/?utm_campaign=144195&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Мои потребности в анализе производительности софта на x86 покрывают три тула. Один из них — Vtune XE знаком, наверное, всем, кто сталкивался с оптимизацией.<br/>
<br/>
Второй <a href="http://software.intel.com/en-us/articles/intel-architecture-code-analyzer/">тул</a>, к сожалению, не столь широко известнен. Он уже <a href="http://habrahabr.ru/post/99367/#habracut">упоминался</a> на Хабре в контексте оптимизации AVX кода, но область его применения несколько шире. <br/>
<br/>
Иногда после того, как Vtune нашел самый главный хотспот (а зачастую, разработчик и так его знает), возникает потребность приложить некоторые усилия для уменьшения числа тактов, которые тратятся на его исполнение. Уже почти три года я использую для анализа производительности таких небольших, но критичных участков кода Intel Architecture Code Analyzer.<br/>
<br/>
Пользоваться им просто, вот рекурсивный алгоритм всего лишь из 6 шагов:<br/>
1. В соответствующем .c/.cpp файле включается<br/>
#include «iacaMarks.h», <br/>
2. dll/so библиотеки IACA кладутся в доступное системе место,<br/>
3. в исходник добавляются макросы<br/>
IACA_START, IACA_END<br/>
соответственно, перед началом и после окончания оптимизируемого кода. Например,<br/>
 <a href="https://habr.com/ru/articles/144195/?utm_campaign=144195&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 19 Jul 2012 09:25:22 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[intel]]></category><category><![CDATA[performance]]></category><category><![CDATA[vtune amplifier xe]]></category><category><![CDATA[intel architecture code analyzer]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Анонсирована аппаратная поддержка транзакционной памяти в Haswell]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/137567/</guid>
      <link>https://habr.com/ru/companies/intel/articles/137567/?utm_campaign=137567&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Haswell будет очень инновационным <a href="http://en.wikipedia.org/wiki/Intel_Tick-Tock">Tock</a>'ом. Еще в прошлом году стало доступно описание новых операций с целыми в AVX. А на этой неделе было <a href="http://software.intel.com/file/41417">опубликовано</a> очередное расширение архитектуры X86. В Haswell появится аппаратная поддержка транзакционной памяти! На англоязычных сайтах обсуждение кипит. <a href="http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell/">ISN</a> <a href="http://arstechnica.com/business/news/2012/02/transactional-memory-going-mainstream-with-intel-haswell.ars">Arstechnica</a> <a href="https://lwn.net/Articles/480018/">LWN</a> <a href="http://www.engadget.com/2012/02/09/intel-teaches-haswell-the-core-value-of-teamwork/">Engadget</a><br/>
<br/>
Я думаю, что это самое нетривиальное расширение архитектуры X86 за много-много лет. Фича называется Transactional Synchronization Extensions (далее TSX), и состоит из двух частей — Hardware Lock Elision (HLE) и Restricted Transactional Memory (RTM). Обратите внимание на слово «Restricted». Все верно, есть некоторые ограничения по объему, гранулярности и уровню вложенности транзакций. <br/>
<br/>
Об этих ограничениях и как это все будет работать подробнее под катом. (Никаких картинок, скучный технический текст)<br/>
 <a href="https://habr.com/ru/articles/137567/?utm_campaign=137567&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 10 Feb 2012 14:15:04 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[STM]]></category><category><![CDATA[TSX]]></category><category><![CDATA[HLE]]></category><category><![CDATA[RTM]]></category><category><![CDATA[Haswell]]></category><category><![CDATA[locking]]></category><category><![CDATA[scalability]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Об истории реализаций memcpy и их производительности]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/133962/</guid>
      <link>https://habr.com/ru/companies/intel/articles/133962/?utm_campaign=133962&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[void * memcpy ( void * destination, const void * source, size_t num );<br/>
Казалось бы, что там сложного? А о реализациях этой функции можно написать целую историю.<br/>
<br/>
Когда я смотрю на окно своего любимого рабочего инструмента — профилировщика Vtune XE, очень часто вижу, что он в очередной раз обнаружил, что значительное время потратилось на копирование памяти. Так и обычно и написано: clock ticks spent in libgcc/[g]libc/kernel memcpy — XX%.<br/>
<br/>
Наверное, поэтому memcpy часто переписывался, например в lkml частенько появляются подобные <a href="https://lkml.org/lkml/2011/8/12/267">треды</a>. (Больше реализаций, скорее всего, есть только у сортировок). Казалось бы, в отличие от сортировки, где есть много вариантов и алгоритмов с копированием памяти все просто. На самом деле, даже если говорить о корректности, а не производительности, возможны варианты. (В подтверждение тому — <a href="http://sourceware.org/bugzilla/show_bug.cgi?id=12518">обсуждение</a> эпического бага с участием Линуса Торвальдса и Ульриха Дреппера).<br/>
<br/>
Еще во времена 8086, то есть тридцать четыре года назад, внутри реализации memcpy был следующий код:<br/>
mov [E]SI, src<br/>
mov [E]DI, ptr_dst<br/>
mov [E]CX, len<br/>
rep movsb<br/>
(все проверки и т.д. здесь и далее опущены для простоты)<br/>
<br/>
Что же изменилось с тех пор? Под катом ассемблерный код и ни одной картинки.<br/>
 <a href="https://habr.com/ru/articles/133962/?utm_campaign=133962&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 10 Jan 2012 10:25:34 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[memcpy]]></category><category><![CDATA[vtune]]></category><category><![CDATA[SSE]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Особенности работы кэша применительно к realtime на x86]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/117760/</guid>
      <link>https://habr.com/ru/companies/intel/articles/117760/?utm_campaign=117760&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/2b0/e54/809/2b0e54809642db934a56436f6eccf5f9.jpg" align="left" alt="image"/> В продолжение <a href="http://habrahabr.ru/company/intel/blog/107075/">постов</a> об использовании железа с х86 архитектурой в системах реального времени. Там я вкраце описал, насколько x86 удовлетворяют realtime требованиям, и что этому мешает.<br/>
<br/>
Небольшое лирическое отступление. Системы реального времени — один из наименее известных двигателей компьютерного прогресса. Например, первый портативный компьютер был создан благодаря им. Сейчас почему-то считается, что первым серийным портативным компьютером был Osborn. На самом деле устройство на картинке выше было создано в Сименсе как cредство управления и программирования промышленной автоматизации за два года до Osborn. Переносные компьютеры этого семейства (Siemens Simatic) выпускаются и сейчас, хотя, конечно, железо много раз менялось.<br/>
<br/>
Но перейдем к делу. В этом топике я подробнее остановлюсь на одном из факторов, который мешает предсказуемости времени выполнения realtime кода. Под катом будет не длинный, но нудноватый текст.<br/>
 <a href="https://habr.com/ru/articles/117760/?utm_campaign=117760&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 11 May 2011 11:04:46 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[realtime]]></category><category><![CDATA[intel]]></category><category><![CDATA[x86]]></category><category><![CDATA[cache]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[2 года в Германии, впечатления после переезда из Новой Зеландии]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/107119/</guid>
      <link>https://habr.com/ru/articles/107119/?utm_campaign=107119&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Почти 2 года как мы с женой <a href="http://habrahabr.ru/blogs/migration/63903/">переехали</a> в Германию из Новой Зеландии. Хочу описать впечатления и несколько лайфхаков, полезных первое время. Все это можно найти в интернете, но редко в одном месте. Возможно, отчасти все будет слишком специфично для Мюнхена/Баварии. Текст длинный!<br/>
 <a href="https://habr.com/ru/articles/107119/?utm_campaign=107119&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 03 Nov 2010 08:23:09 GMT</pubDate>
      <dc:creator><![CDATA[izard]]></dc:creator>
      <category><![CDATA[Чулан]]></category>
      <category><![CDATA[германия]]></category><category><![CDATA[новая зеландия]]></category><category><![CDATA[иммиграция]]></category><category><![CDATA[налоги]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Worst case execution time на x86]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/107075/</guid>
      <link>https://habr.com/ru/companies/intel/articles/107075/?utm_campaign=107075&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В прошлом <a href="http://habrahabr.ru/company/intel/blog/106598/">посте</a> я описал, как и зачем измеряется interrupt latency на платформе Atom.<br/>
<br/>
Сегодня расскажу о том, почему один и тот же код с одними и теми же входными данными может исполняться разное время. Для некоторых realtime приложений это очень нежелательный эффект, с которым приходится бороться.<br/>
 <a href="https://habr.com/ru/articles/107075/?utm_campaign=107075&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 28 Oct 2010 11:06:18 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[embedded]]></category><category><![CDATA[realtime]]></category><category><![CDATA[atom]]></category><category><![CDATA[core 2]]></category><category><![CDATA[cache]]></category><category><![CDATA[hyperthreading]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Вопросы использования Intel Atom для embedded realtime задач]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/106598/</guid>
      <link>https://habr.com/ru/companies/intel/articles/106598/?utm_campaign=106598&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[После того, как архитектура Atom проявила себя в нетбуках, некоторые компании стали использовать Atom для Embedded Realtime применений. Делают промышленные контроллеры, гоняют на них <a href="http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80">PLC код</a>.<br/>
<br/>
Те же чипы, что и в нетбуке обычно на заводах не используют. Есть специальный платформы. Сначала был <a href="http://edc.intel.com/Platforms/Atom-Z5xx/">Crown Beach</a>, сейчас начинает использоваться в дизайнах <a href="http://edc.intel.com/Platforms/Atom-E6xx/">Queens Bay</a>. Для IVI (автомобильный компьютер) есть своя <a href="http://edc.intel.com/Applications/In-Vehicle-Infotainment/Low-Power/">платформа</a>.<br/>
<br/>
Естественно, удовлетворение realtime требований — необходимое условие. Об этом подробнее под катом.<br/>
 <a href="https://habr.com/ru/articles/106598/?utm_campaign=106598&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 27 Oct 2010 11:33:06 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[atom]]></category><category><![CDATA[realtime]]></category><category><![CDATA[vxworks]]></category><category><![CDATA[windows]]></category><category><![CDATA[linux]]></category><category><![CDATA[embedded]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Intel Ct beta — что, зачем, как]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/intel/articles/88735/</guid>
      <link>https://habr.com/ru/companies/intel/articles/88735/?utm_campaign=88735&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[2 недели назад помогал клиенту начать пользоваться бетой Intel Ct. Заодно, как водится, и сам немножко разобрался, и теперь хочу поделиться.<br/>
<br/>
Недавно появилась возможность скачать бету Ct, зарегистрировавшись на <a href="http://software.intel.com/en-us/data-parallel/">сайте</a>. Пока только для Windows, но через некоторое время должна появиться бета и для Linux.<br/>
 <a href="https://habr.com/ru/articles/88735/?utm_campaign=88735&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Если интересно, стоит ли пробовать скачать бету Intel Ct, и что это вообще такое, читайте дальше.</a>]]></description>
      
      <pubDate>Sun, 11 Apr 2010 19:38:35 GMT</pubDate>
      <dc:creator><![CDATA[izard (Intel)]]></dc:creator>
      <category><![CDATA[Блог компании Intel]]></category>
      <category><![CDATA[intel]]></category><category><![CDATA[ct]]></category><category><![CDATA[parallel programming]]></category><category><![CDATA[gpu programming]]></category><category><![CDATA[manycore]]></category><category><![CDATA[multicore]]></category><category><![CDATA[SSE]]></category><category><![CDATA[SIMD]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Стань судьей Android Developer Challange 2. На Android Market появилось программа для судей-волонтеров]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/70719/</guid>
      <link>https://habr.com/ru/articles/70719/?utm_campaign=70719&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Два дня назад Google наконец-то <a href="http://android-developers.blogspot.com/2009/09/adc-2-judging-has-begun.html">опубликовал</a> на Android Market программу для судей Android Developer Challenge 2. Результаты первого тура целиком зависят от оценок пользователей! Есть около 2 недель на то, чтобы проголосовать.<br/>
<br/>
Был опубликован <a href="http://www.4feets.com/2009/09/a-sneak-peek-at-adc2-submissions/">неполный список</a> программ, засабмиченных на ADC 2.<br/>
В списке около 100 программ, но на самом деле их гораздо больше. Около 50 я уже успел посмотреть и поставить им оценки, а Judging app предлагает посмотреть все новые и новые приложения. Жена будет недовольна тем, как я проведу выходные :(<br/>
 <a href="https://habr.com/ru/articles/70719/?utm_campaign=70719&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 26 Sep 2009 10:22:01 GMT</pubDate>
      <dc:creator><![CDATA[izard]]></dc:creator>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Android]]></category><category><![CDATA[android developer challenge]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[С.Петербург -&gt; Новая Зеландия -&gt; Мюнхен]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/63903/</guid>
      <link>https://habr.com/ru/articles/63903/?utm_campaign=63903&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Захотелось нам с женой 3 года назад пожить где-нибудь, где климат лучше, чем в Питере (что найти несложно), не очень далеко от моря, и где общение с государством и его представителями было бы в среднем не очень противным, и, желательно, только по почте. И чтобы место было bicycle-friendly, без пробок и с чистым воздухом.<br/>
<br/>
Страну выбирали по науке. Написали для себя критерии, оценки, составили табличку в Excel. К сожалению, табличка со временем где-то потерялась. Оценки ставил из своего опыта. Успел до этого пожить понемногу во Франции, Англии, Штатах. Объездил по работе еще пару десятков стран.<br/>
<br/>
В итоге выбрали Новую Зеландию.  <a href="https://habr.com/ru/articles/63903/?utm_campaign=63903&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 08 Jul 2009 14:03:28 GMT</pubDate>
      <dc:creator><![CDATA[izard]]></dc:creator>
      <category><![CDATA[Чулан]]></category>
      <category><![CDATA[новая зеландия]]></category><category><![CDATA[германия]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
