Репутація українського ІТ. Пройти опитування Асоціації IT Ukraine
×Закрыть

Работа с кэшем и режимами кэширования под x86 архитектурой на примере одной разработки

Меня зовут Mike Gorchak, я работаю «обычным сеньором» в QNX Software Systems / BlackBerry в отделе engineering services, graphics team. Engineering services — это как аутсорс, только все разработки так или иначе свяазаны с нашей операционной системой QNX, плюс специализация на кастомных решениях для заказчиков и их оптимизация. Основными моими заказчиками являются Tier 1 из мира automotive.

Одной из основных моих специализаций последние 11 лет является x86 платформа, на базе решений от Intel (чипсеты, процессоры, GPU). 5 лет назад Intel зашла на рынок automotive со своей A-серией процессоров Intel Atom, архитектура ApolloLake со встроенной GPU 9-го поколения. Ближайший аналог десктоп архитектуры — это Skylake. С тех пор многие Tier 1 поставщики захотели поставлять автомобильную электронику на базе А-серий Intel Atom процессоров, с тех же самых пор заказчикам нужна постоянная кастомизация существующих решений, чтобы выжать из платформы всё до последней капли.

Одной из частей GPU на интелловской автомобильной платформе является медиа-процессор, который может сжимать и расжимать видеоряд используя многие современные кодеки с довольно приличной скоростью, как для такого embedded устройства. Драйвера были написаны, часть портирована как VA API драйвер Intel под Linux. Основной заказчик этого драйвера — внутренний, другая команда, которая занимается разработкой а-ля чёрного ящика для автомобилей, вся информация с экранов, камер, датчиков, сжимается и сохраняется. И если камера выдаёт 60 FPS, то и сжимать нужно со скоростью 60 FPS, чтобы не пропустить ни одного фрейма. Разработчики другой команды во время того как писались BSP и прочие драйвера для новой платформы использовали desktop аналог для разработки. Они говорят, мы всё протестировали и больше 40 FPS никак выдать не можем, а тестируем на десктопном аналоге — получается минимум 120 FPS, а автомобильный не должен от него отставать сильно.

Начинаем разбираться. В чём отличие десктопного варианта и автомобильного? У десктопного варианта есть LLC (Last Level Cache) кэш. Кэш называют LLC, когда он последний, например, для процессора он будет L3, а для GPU он будет L4. И он объединяет между собой не только процессор, но и другие устройства. Другие устройства постоянно занимаются процессом называемым Cache Snooping — они отслеживают записи и чтения в регионах памяти, в которых идёт обмен с устройствами и кладут данные в LLC кэш, т.к. могут его использовать вместе с процессором.

Подробнее про LLC: en.wikichip.org/...​fers,cores, IGP, and DSP
Подробне про Bus (Cache) Snooping: en.wikipedia.org/wiki/Bus_snooping

Используя LLC кэш процессор позволяет буферам с данными, которыми обменивается медиа-процессор в GPU и СPU быть кэшируемыми с точки зрения центрального процессора, что несомненно сказывается на быстродействии самым положительным образом. А вот автомобильная платформа LLC кэша не имеет, cache snooping протокол не работает, поэтому все буфера обмена должны быть uncacheable (некэшируемые) с точки зрения процессора, чтобы любые изменения делаемые GPU и CPU были мгновенно видны друг-другу. Ок, запускаем тест на измерение memory bandwidth (UC — uncacheable, WB — write-back — самый обыкновенный режим кэширования региона памяти используемый на x86 по умолчанию):

size      UC->WB, WB->UC
            memcpy
 ------ -------------
    256    41.44 Mb/s
    512    41.46 Mb/s
   1024    41.49 Mb/s
   2048    41.46 Mb/s
   4096    41.44 Mb/s
   8192    37.31 Mb/s
  16384    37.31 Mb/s

Приехали. Пропускная способность некэшируемой памяти на этой платформе около 110x раз медленее кэшируемой. Простые расчёты показывают, что если мы будем копировать Full HD видео фрейм, который занимает 1920*1080*1.5 (NV12) = 3,110,400 байт, то в секунду мы можем залить для GPU или забрать назад только 13 фреймов.

Немного полезной теории: Intel® 64 and IA-32 Architectures Software Developer Manuals: software.intel.com/...​p/articles/intel-sdm.html

Раздел 11.3 METHODS OF CACHING AVAILABLE описывает режимы кэширования регионов памяти, нас интересуют только три из них:

Strong Uncacheable (UC) or Uncacheable (UC-) — Регионы в системной памяти, имеющие этот аттрибут являются некэшируемыми. Все чтения и записи сразу появляются на системной шине и выполняются в порядке очереди заданной кодом при обращении. Этот режим кэширования подходит для доступа к memory mapped I/O при работе с устройствами. Когда используется для обычной системной памяти, он значительно замедляет работу процессора, т.к. он ожидает чтения и записи в память каждого обращения.

Write Combining (WC) — Тоже самое, что и Uncacheable (UC-). Но все записи осуществляются через Write Buffer внутри процессора, обычно это от одного до нескольких десятков cachelines. Реализация отличается от процессора к процессору, но общий подход следующий — все последовательные записи или записи не выходящие за пределы размера буфера, попадают в этот самый write buffer, если происходит выход за границы write buffer или он переполнен, то write buffer или его фрагмент сохраняется в памяти. Любое чтение из WC региона памяти также осуществляет сброс буфера в память, работая как posting read механизм. Также ряд процессорных команд делают тоже самое, например MFENCE, но быстрее, т.к. не нужно фиктивное чтение из некэшируемой памяти. Чтение такое же медленное, как и в случае с Uncacheable (UC-) памятью, но ряд процессорных команд могут использовать Write Buffer временно как Read Buffer, т.к. при чтении он полностью сброшен и доступен для временных операций. Это операция называется speculative reads.

Write-back (WB) — Чтение и запись проходят через кэши всех уровней по усмотрению процессора. Самый быстрый доступ к памяти, он же является доступом по умолчанию.

Так как мы используем QNX, который предоставляет очень удобные механизмы тонкого тюнинга и контроля маппинга памяти с разными режимами кэширования, мы решаем уйти от UC (uncacheable) и использовать WC (write-combining режим записи для некэшируемой памяти).

Например, выделение памяти с режимом кэширования Write-back (WB):

mmap(NULL, pix_buffer_mem_size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED, NOFD, 0);

Выделение памяти с режимом кэширования Uncacheable (UC-):

mmap(NULL, pix_buffer_mem_size, PROT_READ | PROT_WRITE | PROT_NOCACHE, MAP_ANON | MAP_SHARED, NOFD, 0);

Выделение памяти с режимом кэширования Write-Combining (WC):

shm_fd = shm_open(SHM_ANON, O_RDWR | O_CREAT, 0);
shm_ctl(shm_fd, SHMCTL_ANON | SHMCTL_LAZYWRITE, 0, pix_buffer_mem_size);
mmap64(NULL, pix_buffer_mem_size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);
close(shm_fd);

В Linux всё гораздо сложнее — для получения WC или UC памяти нужно писать свой драйвер для выделения такой памяти и задания нужны PAT аттрибутов. Можно взять за базу этот проект: github.com/...​nsqueeze/uncached-ram-lkm

Тестируем скорость доступа к Write-Combining (WC) памяти:

size        WC->WB       WB->WC
            memcpy       memcpy 
 ------ ------------- -------------
    256    41.44 Mb/s  2441.41 Mb/s
    512    41.46 Mb/s  3814.70 Mb/s
   1024    41.49 Mb/s  4069.01 Mb/s
   2048    41.46 Mb/s  4359.65 Mb/s
   4096    41.44 Mb/s  4695.01 Mb/s
   8192    37.31 Mb/s  4694.71 Mb/s
  16384    37.31 Mb/s  4694.71 Mb/s

Уже лучше, гораздо лучше, но не для всех видов работы, т.к. забирать расжатые или сжатые фреймы с помощью центрального процессора мы всё равно можем очень медленно, как и в случае с некэшируемой памятью. Но писать почти с той же скоростью, что при работе с Write-back (WB) режимом кэширования.

Попробуем использовать SSE команды, которые поддерживают speculative reads из WC регионов памяти, например MOVNTDQA, в конце статьи я объясню почему именно эта команда с суффиксом NT в мнемонике.

Хороший образец кода для Streaming Load (Speculative Reads) можно посмотреть в исходниках Mesa3D. Код написан Intel и имеет BSD-подобную лицензию, за что им спасибо: gitlab.freedesktop.org/...​n/streaming-load-memcpy.c

size      WC->WB        WB->WC        WC->WB        WB->WC
            memcpy        memcpy       movntdqa      movntdqa
 ------ ------------- ------------- ------------- -------------
    256    41.44 Mb/s  2441.41 Mb/s   592.57 Mb/s  1695.42 Mb/s
    512    41.46 Mb/s  3814.70 Mb/s   610.35 Mb/s  2774.33 Mb/s
   1024    41.49 Mb/s  4069.01 Mb/s   629.23 Mb/s  3590.30 Mb/s
   2048    41.46 Mb/s  4359.65 Mb/s   629.23 Mb/s  4069.01 Mb/s
   4096    41.44 Mb/s  4695.01 Mb/s   629.23 Mb/s  4359.65 Mb/s
   8192    37.31 Mb/s  4694.71 Mb/s   333.50 Mb/s  5085.94 Mb/s
  16384    37.31 Mb/s  4694.71 Mb/s   333.50 Mb/s  5085.94 Mb/s

При доступе размером в одну страницу памяти — 4096 байт, получаем максимальный выигрышь на этой платформе, на других платформах скорости и гранулярность доступа могут отличаться, но одна страница выглядит логично и универсально также и для других архитектур интелловских процессоров. Итого 629 / 3 ~ 200 фреймов в секунду. Мы уложились. Всё работает. Но есть один ньюанс, загрузка ядра процессора, которое занимается копированием из Write-Combining (WC) региона памяти составляет около 30%, что довольно таки много, делая embedded процессор слегка тёплым, в районе 45-50 градусов Цельсия. Память тоже стала больше греться. Да и разработчики других подсистем не обрадуются тому, что мы забрали 30% одного из четырёх ядер просто так.

Так как современные автомобили имеют системы engine start/stop и выключают двигатель во время остановки, то всё питание всех систем идёт с аккумулятора, а не с генератора. То повышенное потребление нужно всё равно решать, рано или поздно. Пока тема горячая, нужно продолжать исследования дальше.

Вариантов по сути больше нет, только использовать кэшируемую память. Но проблема в том, что данные в памяти не когерентны с данными в кэше. И GPU об этом ничего не знает. Помните как в школе нас учили, что делить на ноль нельзя? И только повзрослев мы получили индульгенцию деления на ноль без последствий в виде CPU exceptions и прочих радостей. Используя FPU мы можем наслаждаться бесконечностью (infinity) в качестве результата. Все учебники и мануалы говорят, что использовать для устройств кэшируемую память нельзя, но если очень надо, то можно! А нам надо.

Вариант действий номер 1. Мы кладём и ложим данные для обработки медиа-процессором в кэшируемую память. Но надо позаботиться о том, чтобы данные из кэша записались в память. Как? Использовать старую добрую команду процессора WBINVD: www.felixcloutier.com/x86/wbinvd — Write back and flush Internal caches; initiate writing-back and flushing of external caches. Но у этой команды есть большие недостатки — она требует исполнения на уровне Ring 0 процессора — требует самый высокопривелигированный уровень из доступных для обычных приложения и ядер. Механизмы выполнить её в QNX существуют, но появляется вторая проблема, использование этой команды сродни разбиванию яиц кувалдой для омлета, мы будем 60 раз в секунду полностью уничтожать весь кэш процессора, причём всех четырёх ядер, т.к. они поддерживают когерентность кэша между собой. А вот за это нас точно по голове не погладят.

Вариант действий номер 2. Мы кладём и ложим данные для обработки медиа-процессором в кэшируемую память. Но надо позаботиться о том, чтобы данные из кэша записались в память. Как? Использовать «новые» команды процессора CLFLUSH и CLFLUSHOPT:
www.felixcloutier.com/x86/clflush
www.felixcloutier.com/x86/clflushopt

Данные команды работают на уровне cache line, поэтому нужно либо хардкодить размер кэшлайна 64 байта или спрашивать у CPUID инструкции. Второе предпочтительнее, если мы хотим использовать код не только на этой платформе. На помощь в реализации и имплементации workarounds для Intel Atom процессоров (а у нас именно он) приходит кладезь полезного кода — Mesa3D: gitlab.freedesktop.org/...​ntel/common/gen_clflush.h . Код написан Intel и опять под BSD-like лицензией, что очень удобно, к тому же код не завязан на внутренности Mesa3D. Сама Intel захардкодила размер кэшлайна равным 64 байтам, наверное они что-то знают :) Либо скоро будут переписывать этот код. Но сегодня для наших нужд с использованием CPUID инструкции пока всё хорошо.

Необходимо осуществлять следующие правила — пишем данные в буфер для отправки, сбрасываем (flush) все кэши в память, берём буфер для приёма и сбрасываем все кэши там тоже и инвалидируем весь кэш для этого региона памяти. Т.к. мы хотим читать актуальные данные, что сохранил GPU, а не то, что в кэше. Эти буфера никто не имеет права трогать кроме нашего приложения, чтобы никакие данные не проскользнули в кэш. Вроде все условия соблюдены.

Тестируем. Процессор холодный и скоро замёрзнет, всё работает у нас быстро. Но через неделю приходит другая команда и говорят, что когда работает наш код, то их код, который тоже супер-оптимизированный работает не очень быстро. Ищем подводные камни: en.wikipedia.org/wiki/Goldmont — Automotive processors (Apollo Lake)

Размер кэша второго уровня всего 2Mb. Копируя буфера по 3Mb с частотой 60 раз в секунду мы просто уничтожаем весь кэш процессора, он замещается данными из нашего буфера, оставляя другие ядра с бесполезным содержимым кэша на борту, т.к. они никогда не будут к этой памяти обращаться. Вот и негативная сторона когерентности кэша, с Write-Combining (WC) такой проблемы бы не имели, зато грелся процессор. Открываем библию Intel® 64 and IA-32 Architectures Software Developer Manuals (ссылка была дана вверху) и читаем главу 10.4.6.2 Caching of Temporal vs. Non-Temporal Data. Не мы первые и не мы последние столкнулись с этой негативной стороной кэширования в многоядерных и многопроцессорных системах. Некоторые команды процессора имеют Non-Temporal свойство по отношению к кэшу, они имеют суффикс NT в имени своей мнемоники, в середине статьи упоминалась команда MOVNTDQA с обещанием объяснить её смысл в конце статьи. При работе этих команд процессор выделает минимальный временный кэш только для ускорения работы этих команд при копировании, но не загрязняет остальной кэш ненужными данными. Заменяем нашу оптимизированную memcpy() функцию опять на функцию, любезно предоставленную Mesa3D с использованием MOVNTDQA (ссылка в середине статьи) и вуаля. Кэш практически не тронут, другие ядра, которые обслуживают распознование и прочие подсистемы ADAS больше не тормозят и работают на пределе выжимая последную каплю производительности из кремния.

Это не единственная проблема, которую приходилось решать, связанную с кэшированием, но наиболее яркая и простая для понимания.


Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В результате все свелось к выравниванию буферов на alignment и чтению выравненного буфера с помощью «секретной команды». Танцы с бубном в захардкоденых задачах за что не любят Интел.

Танцы с бубном в захардкоденых задачах за что не любят Интел.

А интел тут причем? С амд, нвидией, армами всё тоже.

Вот вы говрите, что производительность чтения/записи зависит от архитектуры, в том смысле, что на разных архитектурах разные размеры буферов памяти будут оптимальные.
Не означает ли что такие константы, как размер буфера, будут варироваться в зависимости от архитектуры процессора, для достижения макс. производительности на всех поддерживаемых процессорах ?

Не означает ли что такие константы, как размер буфера, будут варироваться в зависимости от архитектуры процессора, для достижения макс. производительности на всех поддерживаемых процессорах ?

Да. В статье я не указывал при замерах скорости работы с памятью блоки больше 16384 байта — там есть серьёзные провалы при работе в некоторых случаях, связанные с размерами блоков. Похоже, что процессор сам входит принудительно в режим «CPU relaxing» при сильно интенсивной работе на больших блоках (см. инструкцию PAUSE). И это всё очень платформо-зависимое. Да, универсального размера буферов нет, но если нужна универсальность, то с большими блоками лучше работать с гранулярностью равным странице памяти. Это будет в среднем работать на всех платформах, не оптимально, но достаточно близко к оптимальному.

Уважаемый автор,
Хочу себе купить на повседнев ноутбук на: Intel Atom x5-Z8550
(Очень мобильный)
Суть вопроса: Подскажите, пожайлуста с точки зрения архитектуры, насколько все плохо в плане производительности приложений Windows, например браузера Chrome по сравнению к примеру с 2х ядерным, 4х поточным I3.
Большое спасибо за ваше мнение.

Это Cherry Trai платформа, её основное предназначение быть запиханной в планшет или телефон и работать как можно дольше от батареи. Очень мобильный нотбук тоже вполне её ниша, изначально она предназначалась для Microsoft Surface планшетов/ноутов. Производительность по остаточному принципу.

Почитал статью.
Чувствую себя обезьяной из сюжета «Космической Одиссеи 2001».
www.youtube.com/watch?v=zmX7K8noikE

У меня смешанные чувства.

В целом ничего нового, и тут бац! Оказыватся, что SIMD работает на другой частоте! И никто этому не удивляется, т.к. все знали об этом!

Страшно подумать, но ведь я даже grep-ал ассемблерный выхлоп от gcc и радовался если видел там xmm, ymm или аж zmm!

Сейчас сижу у убеждаю сам себя, что всё- равно у SIMD больше приемуществ чем недостатков и его нужно использовать.

что всё- равно у SIMD больше приемуществ чем недостатков и его нужно использовать

Да.
Но нужно с ним быть аккуратным. Там тоже не всё просто. Процу пофиг на частоту, если не перегревается, а SIMD, особенно AVX2 и выше греют его конкретно.
Но лично я стараюсь работу с SIMD отдать интеловским либам типа MKL, IPP и подобным.

В ARM NEON ніби такої фігні з частотами нема

С точки зрения логики процессор не будет принудительно выполнять SIMD инструкции на пониженной частоте, но они его греют очень сильно и логично, что он будет сбрасывать частоты для всего или для конкретных модулей я не знаю.
Но с другой стороны, как я понял Майка ниже многие интеловские сразу исполняют SIMD на пониженной частоте, чтобы кристалл не потрескался от перегрева.
Поэтому с Неоном всё тоже самое будет. А учитывая, что он обычно на мобильниках всяких и встроеной фигне, то и акк он выжрет очень быстро.

В нас працює на максимальній частоті. Особливо не грілося, на наших частотах і розмірах кадрів. Між кадрами достатньо часу на охолодження.

На ARM цього не помічав. Може тому, що обробка зображення займає найбільше часу.

Большинство армов не умеют сбрасывать частоты при повышенной нагрузке, это прерогатива SoC, что в принципе логично, т.к. там целый огород на одном кристалле. Что касается neon инструкций — оно частоты не сбрасывает, но потребление увеличивает знатно. Если интел рекоммендует разбавлять SIMD инструкции обычными, то в ARM наоборот, neon ядро будет активно ещё какое-то время после начальной активации и неиспользования. Потребление некоторых SoC при активизации neon увеличивалось в 2 раза, поэтому тут правильная тактика — быстро посчитал — поспал. Энергоэффективность от 1.5 до 2.5 раз при кратковременном использовании neon по сравнению с обычным CPU. У интела для AVX-512 до 8 раз. Поэтому даже при сбрасывании частот всё равно выгодно использовать AVX-512. Другое дело — AVX-512 в OpenSSL на серверах — это использование 24/7 — тут уже хз как считать, особенно при влиянии на другие ядра.

у меня тоже смешанные чувства от подобного комментария, потому что это не SIMD работает на другой частоте, а вполне конкретные наборы SIMD-инструкций у вполне конкретного и единственного вендора

Работа с кэшем....

Каждый раз читаю название темы и каждый раз думаю «О, опять тема про деньги»

Хорошая статья, вспомнил времена, когда игрался с qnx 4 версий и ее фотоном, вещь крайне стабильная и неубиваемая) У интела большая проблема, что они тащат за собой весь ворох легаси инструкций, и режимов, накопившихся с времен 80286. Уже даже софт никто не компилит с поддержкой старых цпу, т.к. они вымерли вместе с софтом

1)
З мережею в QNX6 (QNet) було не все не так гладко.

Може вже все виправили, але були в нас цікаві історії...

Тому зараз — тільки UDP :)

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

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

Та де ж викинули? Маячня на зразок RCL, RCR, або весь FPU з його стеком — все в повний зріст, а викинули тільки якісь DAA які не мали таких проблем.

Ну в этом виновата AMD, это ж они реализовали первыми x86_64, у Intel как раз был проект после Итаниума сделать несовместимую с x86_32 ISA, раз происходит переход на новую архитектуру и так, но пришлось тащить уже новую мёртвую лошадь благодаря AMD.

AMD64 как раз оказалась живой лошадью, в отличие от титаника.

Ну а что они мало поменяли — так скорее всего по бедности. Ну да, трёхногая и хромая ;(

AMD64 как раз оказалась живой лошадью, в отличие от титаника.

На Итаниуме они набили шишек и новая архитектура планировалась другой, более похожей на обычный RISC.

Где про это можно почитать?

Я пытался найти, но не смог. У интела слишком большое кладбище проектов, таких как Larrabee, например. По таймлайну я помню, что они долго собирались выпускать Itanium 2 и сказали, что будет десктопная линейка на базе Intel Deerfield, но то, что вышло был обычный Itanium 2, только сильно порезанный, буквально сразу после этого был удар AMD с AMD64 и они всё свернули. Буквально в это же время Intel занимался модификациями модулярных ARC процессоров, но они ушли в чипсеты и GPU и работают там только на подспорье и сейчас.

«Удар AMD» проектировался несколько лет до того (в 99-м году проект был уже вполне публичным, AFAIR). Так что Intel просто пытался до последнего тянуть Itanium на маркетинге (затыкая 32-битность четвертопнём) и, вероятно, надеясь, что RDRAM таки выстрелит. И тогда, да, даже с их ресурсами оставалось только перелицевать AMD64.
Вот интересно бы послушать, что таки сдохло и в каком лесу, что у них кто-то смог наконец честно признаться в провале.
Но, видимо, узнаем лет через 20.

Да дело не в том, что кому-то надо софт переработать — с этим давно справились. Проблема в том, что это в принципе не поможет, когда оптимальный порядок выполнения команд зависит от таких непредсказуемых свойств, как нахождение данных в L1 (2 такта, грубо говоря) или RAM (200 тактов). Его нельзя в таких непредсказуемых условиях рассчитать заранее, нет, никак. Можно получить только потери в разы и десятки раз на неудачном предсказании, это и происходит.

На DDR4 лучшее на сейчас время на смену активной строки это 37.5 нс. Это адски много. DDR5 это, по отзывам, не улучшил (ждём подробностей), а вообще это время уменьшилось всего лишь в ~2 раза за 20 лет. Это страшный залёт всей индустрии, и никакой закон Мура тут не спасает.

EPIC хорошо работает только при предсказуемом доступе к памяти — а это значит или SRAM, или тактовые в десятки мегагерц. Вот в DSP его используют, без проблем. А в мейнстримных процессорах — никаких надежд, и на что Intel надеялся — я не знаю.

(И никакой авторитет Бабаяна тут не поможет, если он тоже говорит о чём угодно, только не о главной проблеме.)

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

Только на тех задачах, которые укладываются в рамки предсказуемого доступа к памяти. Да, таких много — грубо говоря, почти вся мультимедия, HPC. Но это ой далеко не всё, и обычный OoO исполняет их не хуже. А сейчас ещё и GPU подтянулось и перекрыло все ниши, и нафига тот EPIC?

Itanium позиционировался для HPC.

С чего вы это взяли?
Itanium позиционировался как будущий 64-битный универсальный заменитель x86, при этом уже зная, что граница, за которой 64-битность становится полезной (а это около 1.5GB RAM), ой не за горами, и надо шевелиться.

Но по рекламе того времени и по Pentium 4 видно, что заметная часть надежд была на то, что комп 99% времени будет исполнять действия, которые укладываются в понятие мультимедии (и соответственно легко предсказываются), и поэтому тормоза остальных блоков никого не будут волновать. Вот эти надежды тоже, мягко говоря, удивляют — как могли специалисты понять, что этого не будет.

Я ещё хорошо помню эти подвижки — я как раз выходил тогда в «первую профессиональную зрелость». И то, как начиная где-то с 2002 приходилось переходить на AMD, потому что все вокруг уже благим матом орали «что ты делаешь, Intel, остановись», а те продолжали клепать пару P4+Itanium.

В 1999 никто не мог предположить

Что именно GPU выскочит вперёд — да, мало кто мог предположить. А вот что EPIC заведомо провален, потому что нет в природе столько мультимедии — было очевидно. Intelʼу было достаточно посмотреть на опыт тех архитектур, где уже отработали векторные наборы команд — хотя бы VAX.

а архитектуры SPARC и Power уйдут.

У вас какие-то очень кривые представления. Power не ушёл, он продолжает развиваться и чётко держит свою нишу. Это остальной рынок расширился.

Можно ссылку на такое позиционирование от Intel?

Да пожалуйста. Вот даже с вики, если вам тяжело:

> targeted at high-end enterprise class servers and high performance computing (HPC)

Уже не только HPC; «enterprise class servers» это что угодно, но не HPC, и почти всегда это перемалывание _разнородных_ и разбросанных по памяти данных, где кэш — чуть ли не самая важная характеристика процессора.

> industry analysts predicted that IA-64 would dominate in servers, workstations, and high-end desktops, and eventually supplant RISC and complex instruction set computing (CISC) architectures for all general-purpose applications.

Тут можно сказать, конечно, что «industry analysts» это не сам Intel, но вряд ли это будет серьёзным возражением.

> As part of Intel’s definition and marketing process they engaged a wide variety of enterprise OEM’s, software, and OS vendors, as well as end customers in order to understand their requirements and ensure they were reflected in the product family so as to meet the needs of a broad range of customers and end-users.

Enterprise OEMs — см. выше. Broad range of end-users. Или в вашей вселенной так говорят про HPC?

Архитектурно Athlon 4 (в 2001-2002 у каждого второго были K7 в различных вариациях) продолжал верный путь K6 и PIII в развитии за счет тактовой частоты.

Абсолютно верно! Продолжался путь K6 и PIII, а не P4 или IA64. За счёт этого они и выехали аж до момента появления Intel Core.

Это же круто быть в каждом Маке, пролезть в консоли и до сих пор «чётко держать свою нишу».

Тут согласен, на маке они подсократились заметно. Я думал про pSeries (наследники RS6000) и iSeries (наследники AS/400). Оттуда их никто не погонит ещё долго, потому что влезть в такую нишу нереально — и это то место, где их архитектурные преимущества вылазят больше всего — в отличие от мака и консолей, где это было временно. Потому и не считаю существенным случаем.

(С Cellʼами HPC формата я даже чуть работал. Для них вообще конкретная разновидность ЦП была пофиг.)

И только когда стало понятно, что ядро Tejas с 5ГГц и гигантским конвейером — это явный перебор

Кому «стало понятно»? Уточняйте. Боюсь, кому-то в Intel и сейчас непонятно :)

Что P4 тупо не оправдывает своих денег даже в однотреде, больше половины моих знакомых (вот тут я явно уточняю: все слои — от домашних хакеров до суровых энтерпрайзников) поняли начиная с 2001 — местами, массово — с 2002. Вот переходить было местами сложно по куче причин начиная с административных, да — ну и плюс маркетинг. Но уже с 2003 я не слышал про P4 ничего, кроме плохих слов.
А зачем после этого было тянуть ещё три года до появления Core — вот это и было бы узнать интересно для ретроспективы — кто это такой безумный в руководстве Intel.

Да, кое-кто из знакомых ещё долго тосковал по высокоуровневым фишкам Itanium — но и то не по системе команд, а, например, по развитой инфраструктуре MCE (перетечка которой в x86 завершилась где-то на Nehalem).

А массовый переход в серверном сегменте на Operton начался, наверно, после того как Blizzard стала использовать AMD в своих серверах для WoW.

Вот на это у меня статистики нет (но и у вас, наверно, тоже). Но вообще 64-битку мы применяли с 1999 (правда, на Alpha), и когда возникла идея поставить веб-хостинг на 64-битной системе на Opteron в 2002 — оно уже просто заработало (чему я очень удивлялся — в 99-м mysql и postgres даже не скомпилировались).

Приведите ссылку от Intel.

www.pcworld.com/...​pcs-hits-end-of-line.html

Intel on Thursday started shipping its latest Itanium 9700 chip, code-named Kittson, in volume. It’s the last of the Itanium chips, which first appeared in early 2001.

Beyond Kittson, there will be no more chips coming from the Itanium family, an Intel spokesman said in an email. That ends a tumultuous, 16-year journey for Itanium, which Intel once envisioned as a replacement for x86 chips in 64-bit PCs and servers.

В официальных пресс релизах от Intel я нигде не видел

А с чего ты взял, что такое публикуют в пресс релизах? В пресс-релизах публикуют свершившиеся события. В то время было полно этой информации, включая ту, что я выше упоминал с Intel Deerfield — его пытались всунуть в десктопы, но потом оставили ему нишу low-end серверов и включились в гонку с EMT64

Точно так же ты не увидишь линии: Larrabee -> Xeon Phi -> Intel Xe. А также уши Xeon Phi во всех интеловских GPU. Но она очевидна всем кто работал со всем этим.

Itanium в отличие от Larrabee и Хeon Phi — реальный продукт

Xeon Phi более чем реальный продукт. И AVX расширения, которые тут пугают всех пришли как раз от туда, где они были обкатаны в в доль и поперёк. Но из-за разницы x86 архитектур в Xeon Phi и Xeon Skylake в последнем она стала колом. Потому что в Xeon Phi x86 используется для сетапа работы AVX команд, а в Xeon Skylake наоборот, AVX — это расширение, а не база процессора.

С оптовой ценой 1200$ в 2003? А материнка сколько стоила? Десктоп!? Так и запишем десктопы в 2003 продавались от 7000$. Очереди выстраивались за неделю до презентации. Люди жили в палатках и ждали.

ты оперируешь свершимся фактом, что он так и не стал десктоп процессором и приводишь цены серверного сегмента. Вопрос цены решается тем же маркетингом элементарно. Во многих Xeon нет ничего такого, чего нет в high end десктопных процессорах, но цена последних существенно ниже.

Я уже не знаю на каком языке объяснить. То, что мы видим сейчас как факт — это cancellation Deerfield как десктоп платформы. Если бы этого не случилось — цена была бы другая.

взяли? Что является источником для вас???

Инсайд.

Инсайд в маркетинговом отделе Intel?

В R&D и с теми, кто предоставляет инженерные сэмплы.

Да и как проверить этого «инсайда»

А что это поменяет сейчас конкретно для тебя?

А на утро директорат Intel с удивлением узнает о грандиозных планах на десктоп.

Бывает и так. Иногда рассказываешь Интелу их же новости о которых они не в курсе. Для такого размера компании и по-проектной сегрегации отделов — это нормально.

Да, пожалуйста. Мир от этого не поменяется.

Ну если быть технически корректным, то это я привёл твои слова в другом виде :)

Нет, я не согласен, потому что у меня больше информации для оперирования. Но убеждать каждого и развеивать их иллюзии — это не моя работа. Каждый останется при своём.

Xeon Phi вже мертвий. І був мертвонародженим.

Досі пам’ятаю, як він гудів на всю кімнату.

Подивилися ми на нього, і повернулися до старої доброї Nvidia. Під яку код написаний в 2010 працює в 2020. На відміну від.

(І цей досвід не вберіг мене від того, щоб втратити десь пів року на такий же ж мертвонароджений Intel Joule в зовсім іншому проекті. Симпатично залізяка виглядала. Тільки не працювала).

Xeon Phi вже мертвий. І був мертвонародженим.

Как самостоятельній процессор — да, но всё что было внутри ушло в современные GPU от Intel и в x86 процессоры (AVX).

Люблю IBM Cell.

Коли IBM його вбила, ми терміново переводили обчислення на CUDA. Так і отримали великого замовника.

Что то мне припоминается времена ранних 2000х тогда интел со своими пнями 3,4 так сели в жопу, что что АМД их почти догнало на рынке ЦПУ.

Кстати в 2002 я единственный раз купил ПК с амд-шным процом (атлон). И для прикладных задач он был очень даже ничего.

со своими пнями 3,4 так сели в жопу, что что АМД их почти догнало на рынке ЦПУ.

Не «почти догнало», а перегнало, но только с П4. П3 просто перестал выпускаться, но пока выпускался — был впереди ровесников от AMD (ну, кроме пары крайних сегментов).

Но с приходом Core счастье AMD прервалось.

Кстати в 2002 я единственный раз купил ПК с амд-шным процом (атлон). И для прикладных задач он был очень даже ничего.

У меня было достаточно много всяких AMD, жаловаться было не на что.

Еще с девяностых я заметил такой момент. Как только АМД делает что-то лучше, чем Интел, то сразу останавливается и дает время интелу уйти вперед (что бы не залазить в другую нишу). Я уже давно их воспринимаю, как одну контору с двумя подразделениями, что устраивают «псевдоконкуренцию» на рынке.

Как только АМД делает что-то лучше, чем Интел, то сразу останавливается и дает время интелу уйти вперед (что бы не залазить в другую нишу).

Если это и происходит так, то из-за общих акционеров, которые тормозят развитие AMD. Но даже с времён Core1 мир изменился настолько, что это уже может быть неактуальным. Если будет вдохновение на это (не верю), можно вычислить по тогдашним и нынешним акционерам.

Ну, даже с разными инвесторами двум конторам в мире ничего не стоит договорится. Как бы и не монополия, но по сути монополия. Разные инвесторы тоже договорятся запросто, если им от этого будут рост доходов.

Или вот пример AMD и NVIDA. По узкой специфической синтетики карточки от AMD часто лучше (или как минимум дешевле) карточек от NVIDIA. Но AMD делает всё, что бы не тронуть некоторые ниши NVIDIA.

Вон даже автопроизводители умудряются договариваться, а их стадо.

А не о праве, а о вероятном факте от которого остальным людишкам хуже.

тогда уж наверное EPIC, хотя согласен что эпик идет от истоков влива.

С точностью наоборот что? Я говорил про другую архитектуру, с которой они хотели зайти на 64 битные десктопы.

Каким образом можно набить шишки на VLIW и выпустить удачный RISC?

Потому что нужно понимать, что IA-64 с одним слотом для выполнениея — это RISC. Неожиданно, да. Intel даже в итаниумах варьировала размерами слотов. Но проблема была в том, что производительности это давало 0 без перекомпиляции. С двумя слотами для исполнения оно мало бы чем отличалось от современных x86 в функциональности паралеллизации комманд, только логика была бы не в процессоре, а в компиляторе. Да даже сейчас компиляторы для x86 группируют комманды по использованию функциональных блоков в декодере для увеличения параллелизации.

А поле шаблона каким образом на RISC натягивается?

Таким же как и на CISC. Найди два отличия template’ов в IA64 и в port’ах и доменах на x86_64. Всё разница в том, что там ставил компилятор, теперь компилятор поле шаблонов не ставит, но всё равно группирует команды по этому же принципу.

Кроме того, что x86 — это разная длина команд, что дает пенальти для невыровненных блок в циклах и ветвлениях.

Это уже очень давно не так.

И именно из-за этого так сильно вырос кэш инструкций и кэш трасс.

Откуда куда вырос? В современных x86 он 32Кб, но это связано с тем, что процессор декодирует и выполняет команды наперёд, даже если она не потребуется. Trace cache уже 10 лет как умер, с переходом на Nehalem архитектуру, концепцию не меняют уже туеву хучу лет,

И именно по этому VLIW отлично себя чувствует вообще без кэша трасс.

Все современные x86 процессоры тоже прекрасно себя чувствуют без него. В том же 15-летней давности Itanium 2 instruction cache был 16 Кб, в Pentium 4 того времени 8 и 16Кб, а в современных SkyLake-X — 32Кб. Так что это очень странный довод.

Если я скомпилирую код на C, который умножает матрицы, средствами VC6, то получу группировку команд? Нет. Это перестанет быть x86? Нет. Та может быть разница есть?

Идеологически разницы нет — одно и то же, только разный интерфейс в процессоре для задания группировок.

Только декодирует наперед и префетчит. Даже если у меня смешаны код и данные. А VLIW так делает?

Ручной префетч — это основа и фейл EPIC платформы. Ну и 16Kb instruction cache в Itanium, наверное, для красоты. Единственное, что он не делает — это out-of-order execution, потому что задаётся компилятором, а всё остальное он делает тоже, что и x86.

только в Ivy это исправили путем ввода новой mOp.

И что это меняет?

Идеологически получается разницы нет в RISC, SISC, MISC и VLIW. Раз разницы — «идеологической»! — нет, но на фига Intel менять отличную IA-32?

По-моему тебя понесло. Если ты не видишь ничего общего — в этом нет ничего страшного, твоя жизнь врядли от этого сильно поменяется.

Процессор не телепат и не знает, что именно хочет разработчик и какая наиболее эффективная стратегия префеч. Это работает и сейчас в CUDA.

А почему тогда в Nehalem (как и всех последующих, кто базируется на этой архитектуре, включая самые последние процессоры) ручной префетч тормознее «телепатического» модуля в x86?

Придержи-ка коней! EPIC не делает out-of-order execution — это сильное утверждение, даже если бы такое сказал сам Бабаян.

Т.е. ты утверждаешь что EPIC делает out-of-order execution?

В любом случае на уровне планировщика компилятор выделяет «независимые» блоки и перегруппировывает операции. Чистой воды out-of-order execution, только не на лету, а в момент компиляции.

Давай не будем приводить то что мерещится или кажется за истину. Если нет информации из официальных источников, то и out-of-order execution тоже нет.

А официальное подтверждение, что в Itanium есть OOE будет?

Простого нет было бы достаточно.

Не везде. www.researchgate.net/...​s_When_It_Doesn’t_and_Why

Intel optimization guide говорит, что сейчас уже везде. Оно имеет смысл только за 100-200 комманд до чтения участка памяти размером не более 64 байта (cacheline), при условии, что ты знаешь, что не займёшь чужую линию для prefetch и не замедлишь выполнение текущих команд. «Телепатический» модуль в разы эффективнее. Это как тут один гуру до сих пор живёт тем, что верит, что доступ к EAX регистру быстрее.

Да, такие паттерны в «телепатический» модуль хрен завезешь, как и предварительное обращение к другому банку.

Как раз ручной прифетч и перестал приносить пользу после того, как глубина декодирования команд была сильно увеличена. По поводу банков — как раз эту логику и привезли, процессор сам раскладывает паттерны обращения к памяти используя 2, 3, 4, 6 — канальный контроллер памяти. Часто память вообще нелинейно организована, только это прозрачно для устройств, ОС, и пользователей.

Умение оптимизировать все еще остается уделом программистов, а не инженеров Intel.

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

Отчасти согласен: время на тонкую оптимизацию остается все меньше и меньше.

И знаний тоже. Для тонкой оптимизации нужно представлять как работает современный процессор, а многие застряли в 2000-ых годах, а подходы тех времен даже вредны сейчас. Ведь большинство даже не понимает как работала аппаратная x86 эмуляция на итаниуме и как её засунули назад в x86 в современных процессорах. И это тоже объяснимо, не всем нужны такие тонкости, гораздо проще в голове разделить всё на 100% RISC, CISC, VLIW.

Есть теоретики, есть практики. Но даже теоретики такие теоретики, они не могут пройтись по патентной базе Intel и сопоставить 2+2 на временной шкале + прочитать наконец-то optimization guide от Intel’а.

Выдуманный инсайд передаёт тебе привет из соседнего кубикла %)

что он работает за десктопным итаниумом

К чему это?

Чистой воды out-of-order execution, только не на лету, а в момент компиляции.

И именно поэтому он чудовищно неэффективен.

Про то, что невозможно предсказать задержки доступа к памяти, когда они прыгают в диапазоне от 1 до 300 тактов? Это даже в учебниках много лет (как например Патерсон), а тем более на каждом углу сказано. Ну можете ещё Дреппера про память почитать, там ровно то же самое.

«В момент компиляции».
Перестаньте заниматься художественной резкой по квотингу.

Вот интересно откуда это все берется?

Из грустной тупой объективной реальности, дорогой коллега.

Intelʼу эти теоретические фантазии про умный компилятор очень дорого обошлись — не только IA64, а ещё и Pentium4, построенный из тех же безумных идей.
Зато сейчас они строят конвейеры на сотню команд и две сотни микроопераций — потому что это как раз работает.

подкреплена цифрами, графиками и вообще оформлена в виде научной статьи?

Да.
Но я видел эти статьи за ACMʼовским paywallʼом, а сейчас у меня туда доступа нет. Хотите найти — 180$ наверняка не проблема. Я искать не буду, пока у меня нет причины подписываться к ним.

Каким образом можно набить шишки на VLIW и выпустить удачный RISC?

Я уже выше объяснял. Посмотри на правила UV commands pairing в интелловских x86 того времени — там те же темплейте, что и в EPIC, только негласные и дающие обратную совместимость для кода, если UV pairing не поддерживается.

www.agner.org/...​ze/instruction_tables.pdf

Cмотри страницу 122 по Pentium MMX. Свойство Pairability. Это та база с которой они начали.

После Itanium все идеи в более продвинутом были воплощены в x86. Те же самые длинные VLIW инструкции но в микрокоде.

Ок, нет, так нет.

После Itanium все идеи в более продвинутом были воплощены в x86. Те же самые длинные VLIW инструкции но в микрокоде.

А нафиг тут Itanium был? Только чтобы самому те же шишки набить?

Айтэниум проще в реализации, там, где играет роль количество ядер — они могли представить 64+ ядер на кристалле без теплового удара, на x86 они так не могут.

Я так понимаю, ты готов указать в документации где же именно

Если бы ты хотел узнать, то начал бы зондировать архитектуру современных процессоров на wikichip. Начать с этого:
en.wikichip.org/...​ki/macro-operation_fusion
en.wikichip.org/wiki/micro-operation

Если же тебе это нужно, чтобы всё отрицать — я не против, оставайся с тем багажом знаний и представлений, что у тебя есть.

Такие вещи не документируют. Как я уже сказал, если тебе интересно — штудируй открытые источники:

patents.google.com/patent/US6675376

Если быть откровенным, то мне всё равно, что ты думаешь, сути вещей это не менят, как и реальное положение дел.

VLIW никакими вариациями не является ни RISC, ни SISC. Отсюда повторяю вопрос:

Не могу не пнуть дохлую лошадь проходя мимо. Информация не была ранее публично доступна, оказывается nVidia ARM процессоры на базе ядер Denver и Carmel используют динамическую генерацию VLIW команд из ARMv8 ISA инструкций. В core team более трети разработчиков из Intel. Тадам. Говорят, что сейчас чуть менее чем везде суперскалярность в современных процессорах реализована внутри через генерацию VLIW внутренних инструкций для выполнения. То, где лажанула Трансмета (привет Торвальдсу) другие компании добились успеха.

Забавный поворот от человека, похоронившего VLIW.

Где??? Достаточно почитать всю ветку, где я говорю, что в современных x86 VLIW внутри.

то следующий X1 — это Cortex A-57 и A-53 ядра.

Это не следующий, а параллельный. Ядра с VLIW я указал вверху.

Может быть перестанешь валять дурака и начнешь каждую свою «жизу» обосновывать на базе официальной документации Intel или AMD.

Для тебя я не собираюсь этого делать. Если важно — найдёшь. Если не важно, то какая разница.

Мало того, что ты открытую и пережеванную всеми еще в далеком 2014 году информацию называешь

Подожди. Я сейчас тебя перефразирую слово в слово:

начнешь каждую свою «жизу» обосновывать на базе официальной документации nVidia.

Ту ссылку что ты дал — это журналистская статья. Официальную и пережёванную информацию, пожалуйста.

так еще и не разбираешься в линейке nVidia.

Вот поэтому я и не хочу опять перерывать тонны патентов чтобы найти ссылку для тебя, которую ты всё равно не поймёшь (ты ведь даже описание линейки Tegra не осилил) и выдашь что-то наподобие X1 — продолжение K1. Особенно смешно это читать от людей, которые их в руках не держали. У nVidia сегментированные продукты по рынкам K1 — один сегмент, X1 — другой. Почему-то ты не заметил X2, который построен опять на ядре Denver.

Если nVidia Tegra K1 — это VLIW процессор

K1 — T124 Cortex
K1 — T132 Denver

Это ещё одна причина почему я не хочу для тебя искать ссылки. Ты абсолютно уверен в своей правоте не обладая и 10% всей доступной информации.

Боже мой! Все умные люди — разные, а дебилы наоборот — одинаковые.

Нажми Ctrl-W и спи спокойно.

K1 в линейке был заменен на X1, а архитектура Denver переплыла в X2, который ориентирован на автомобили и встраиваемые системы и никак в линейке не пересекается с X1.

Шо ты несёшь — Nvidia Drive CX & PX на базе X1.
Nvidia Drive PX2 на базе X2.

Не знаешь — не лезь.

Я понимаю что твой источник — это педивикия, а мой — я за это деньги получаю работая с Tier 1 поставщиками.

С X1 у них не взлетело и этот вариант никому на коммерческой основе не предоставлялся.

Вот прям таки никому. Тебе все Tier 1 докладывают? Куча машин с X1.

Конечно же все компании вывешивают свои внутренние сделки для непрофильных техлидов из Украины, чтобы они повысили свой мега-экспердный уровень в вещах в которых не разбираются от слова полностью вообще.

Пиздабол как он есть.

Вот это слово как раз применимо для тех кто копирует контент из педивикии с умным видом эксперда в automotive %)

Разработчики работают с Tier 1 интеграторами напрямую, поэтому знают кто под каким SoC ездит.

Более того, я лично работал на крупные компании: Bosch и Dell и знаю что обычные работники владеют лишь продуктами в рамках своего отдела или вообще проекта, а что творится далее — знают только на очень высоком уровне: мол тот отдел занимается тем-то, то — тем-то и все!

Мне очень жаль что там тебя ни во что не ставили. У нас есть такое мероприятие как town hall, раз в неделю, где вся информация о всех проектах становится доступной всем. Для бизнеса — это очень полезно.

Я спрашивал своих знакомых: Microsoft и Oracle — все аналогично. Что-то мне подсказывает, что и тут ты врешь.

Они «внутренние» работники были — или галерные тушки в лизе? Если тушки — то их на встречи с рассказами для «внутренних» могли не пускать.

По моему опыту — «внутренним» в корпорациях рассказывают много. Включая, о маркетинге/клиентах и продажах.

По своему опыту в Bosch скажу: для них нет разницы между контрактерами и рядовыми сотрудниками кроме оплаты и социалки. «Тушки» шли как обычные контрактеры.

Если ты был «тушкой», откуда опыт? Тебя в рассылку/прочтовый распределитель для «внутренних», где назначаются такие встречи — даже не включали.

П.С. К тому же, если у тебя опыт работы с германским Бошем — немцам даже законодательно запрещено включать «внешних» в распределители почты для «внутренних». Т.к. такое включение рассматривается налоговиками, как признак "мнимого предпринимательства"/"мнимой аренды", со всеми вытекающими.

Как внутренняя электронная почта может быть контролирована налоговыми органами?

Налоговики в Германии могут проконтролировать всё. :)

Почитай критерии здесь:
www.leipzig.ihk.de/mediathek/MB_02_47.pdf

В частности: «Eingliederung in die betriebliche Organisation, z. B. Aufnahme in Organigramm, Telefonverzeichnis, E—Mail-Verteiler, gestellte E—Mail-Adresse, Visitenkarte des Auftraggebers;»

Уже даже создание тебе корпоративного почтового адреса, типа «вася.пупкин@бош.ком» — может создать проблемы. Потому, такие адреса «тушкам» либо не создаются вовсе, либо создаются так, чтобы было видно что это «внешний» — к примеру: «вася.пупкин.ext@бош.ком»

Хотя, у некоторых крупняков, типа Сименса — в этом смысле бывают послабления...

По своему опыту в Bosch скажу: для них нет разницы между контрактерами и рядовыми сотрудниками кроме оплаты и социалки. «Тушки» шли как обычные контрактеры.

Разочарую — во всех этих гигантах разница между контрактером и рядовым есть, начиная от рассылок почты, заканчивая доступом к ресурсам, зонами ответственности и просто митингами куда можно ходить, а куда нельзя.

зы: я работаю в одном из гигантов

А теперь расскажите сколько продуктов делает ваша компания и сколько клиентов.

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

Там образом по своему опыту ты можешь подтвердить, что не знаешь что творится в разных отделах: какие продукты, проекты и клиенты, — в своем гиганте?

Конечно не знаю. А ты так и поверил что всё что тебе за кружкой пива баварцы рассказали — чистая правда и полная картина о клиентах компании? :)

Если человек говорит, что не знает, то тут только 2 варианта: он действительно не знает и он знает и даже под алкоголем не раскалывается и врет в глаза. Бритва оккамы говорит, что более простой вариант ближе к истине.

Я таки не знаю, потому что у Сименса отделения от ЖД, Атомной промышленности, энергетики, до consumer electronics и различных компонент (включая разработки подшипников на магнитной подушке). А у Боша — как стиралки и техника на кухню, так и компоненты в авто, и электро моторы и батареи в велосипеды. Откуда мне знать где у кого какие новые клиенты? Если кто-то за кружкой пива ляпнул что «а вот мы делаем новую фичу в навигацию для VW» это капля в океане. И скорее всего не секрет ни разу )

Бритва оккамы

Оккам. Его звали Оккам и у него была бритва Оккама. И отталкивается оно не от простоты, а от точности объяснений.

Вот википедия, например:

бритва Оккама требует предпочесть простое объяснение только в том случае, если оно объясняет явление не менее точно, чем сложное, учитывая весь известный на текущий момент массив наблюдений, то есть если отсутствуют объективные основания для того, чтобы предпочесть более сложное объяснение простому.
Да и само понятие «точность объяснения» в литературе по логике я не встречал. Было «непротиворечивость объяснения», «неполнота объяснения».

Ок, пусть будет по-вашему. Я больше по символической логике или безупречной бессмыслице.

Преинтереснейшая. И, к слову, дарит прекрасный инструментарий упрощения сущностей через уточнение. Очень помогало на парах философии и, как ни странно, психологии.

wiki против академика РАЕН

Про всяк випадок РАЕН — це не наукова установа, і займається псевдонаукою типо цілющох сили лагідного слова, пам’яттю води, торсіонними полями та іншим подібним — ru.wikipedia.org/...​кадемия_естественных_наук.

Так що мабуть wiki віри більше — там хоча б джерела інформації приведені.

членами РАЕН могут быть и заслуженные специалисты

Членами НСРПН можуть бути і дуже хороші люди.

И что ты хочешь сказать?

Я хочу сказати, що вірити «академікам» РАЕН в тій області знань, в якій їм видали звання — собі дорожче. У них там фізики є академіками з біології, математики — академіки з історії чи філології і таке інше непотребство.

А никто не заставляет верить

Тут важливо, що «академіку» РАЕН простіше не вірити.

указан источник БСЭ

Цим можна було обмежитися. Бо РАЕН — це зашквар і про таке соромно говорити.

ты написал эту ерунду, потому что хотел что-то обосновать или просто потому, что увидел что-то знакомое и как собачка отреагировал?

Я написав відповідь на твою єрунду, бо ти приплів РАЕН як наче це щось не ганебне, а навіть напаки.

Если бы ты владел не 10% информации, а так как я — ты бы наоборот проникся

Ні, дяку. Що там далі — астрологія, телегонія, пам’ять води, ...?

Тем более Майоров хорошо известен в научных кругах.

Тим більше, що я ніколи не казав нічого про його відомість чи невідомість.

ты лишь слегка узнал из лукра и вики (в отдельных кругах эти источники считаются тем еще зашкваром) о чем-то

Ти лише поверхньо дізнався про те, звідки я щось дізнаюсь і

уже делаешь далеко идущие выводы
Запомни: лукр и вики — это не источники

Запам’ятай — приписувати опоненту доводи яких той не озвучував є прийомом недосвіченого демагога.

но это официально академия наук

Ні, це самопроголошена шарлатанська організація яка займається лженаукою.

и является научным учреждением

Ні, це організація для продажу звань академіків та придання пристойного виду відмиванню грошей під різні проекти типу пам’яті води чи цілющих CD-дисків.

академики РАЕН — это уважаемые в своей области специалисты

Але вони не є спеціалістами, а тим більше такими щоб їх поважали в тому, в чому вони є «академіками» РАЕН.

Це говористь будь-хто здатний прочитати інформацію про РАЕН.

Прости, а на чем твои выводы строятся?

На результатах. У вчених (які звісно «скривають» і «куплені масонами») у яких є результати в своїх фаховій сфері знань є і думка стосовно РАЕН та «академіків» цього збіговиська.

Що може продемонструвати хоч один «академік» РАЕН крім розміру попиляної купи грошей?

я не могу вот так навскидку что-то предложить

А вчені які «скривають» можуть — відкриття, нові експерименти та спростування чи підтвердженн старих. Але головне — у них є практичні результати.

Тут и у РАН не все сахарно

Це не робить РАЕН, чи звання академіка виданого нею легітимним.

Прости, ты читал, например, альманах МГУ или Бауманки?

Прощаю. Ні, не читав. А до чого це питання?

Термин «легитимным» в данном случае нельзя применять. Посмотри, что значит этот термин.

Подивився — можна:

ЛЕГІТИМА́ЦІЯ, ї, жін., юр. Визнання чи підтвердження законності якого-небудь права або повноваження

тебя возмущает, что я всех под одну гребенку причесал, но тут ты, конечно, как-то по другому сделал

У мене ніяких претензій до людей коли вони говорять щось про свою область знань де є експертами і мають досягнення. Я проти того щоб збіговиська типу РАЕН видавали за наукові.

Общероссийская общественная организация «Российская академия естественных наук» — далее Академия — является основанным на членстве общественным объединением, научной творческой организацией ученых естествоиспытателей и гуманитариев — www.webcitation.org/...​ademy/charter/index.shtml.

Також vivovoco.astronet.ru/...​VV/JOURNAL/VRAN/FALSE.HTM

г-н Шипов
г-н Акимов

Хто всі ці люди?

никогда не избирался академиком РАЕН

Класно їм мабуть... і що?

секция физики РАЕН

Це як «кафедра фізики Баскетбольного Університету».

Ты слышал о торсионных полях, но не слышал кто автор?

Ще я чув про магнетизм і не знаю хто автор. Чув про гадання на бобах — і теж не знаю хто автор. Чув про пласку землю та багато іншого такого веселого — і не знаю хто автор.

В РАН тоже есть секции

Мій коментар був не про слово «секція».

Не читал, но осуждаю?

Чув, але не знаю хто автор. Як і написано вище слово в слово.

Чув вiд кого? Вiд бабцi?

Припустимо я приведу тобі список людей яких ти не знаєш. Що далі буде, для чого тобі знати від кого я чув про магнетизм?

Про доречність «секції фізики» в РАЕН та віри в будь-що спродуковане цією шарашкою.

Створили псевдонаукову організацію яка просуває псевдонауку і пиляє бюджет.

Розумію чому Майк тебе послав.

— Что сдєлалі?
— Ось: ...
— Что сдєлалі?
— Та ось же: ...
— Что сдєлалі?

На це твоє питання я вже відповів більше одного разу. Пошукай там де я давав приклади псевдонаукової діяльності РАЕН. Якщо це така твоя техніка уникати питань то я тебе в цьому підтримувати не буду.

Чувак, попустись. Хочеш вірити в РАЕН чи цілющі CD — твоє діло. Я ж відмовляюся приймати участь в подібній «дискусії» — у кожного хто просто читає твої аргументи на захист псевдонауки невідворотньо пошкоджується якась кількість нервових клітин.

Тому хай тобі буде РАЕН — наука, в компаніях приховують інформацію від співробітників, але не від тебе, мої аргументи не аргументи і про лінійки процесорів знаєш правду лише ти. Так тебе задовольняє?

Які саме тобі «вказівки» потрібні?

Те що це «творча організація» — не достатньо? Те що вони прикидаються науковою установою, чи те що вони потрібні для розпилу грошей? Може факт того, що звання академіка там видають в галузі, в якій людина не має ні фаху, ні досвіду? Чи всі ті маразматичні теорії і дослідження якими займаються «академіки» — щось з цього?

Лет 20 назад для меня было бы достаточно.

Деменція зараз заважає, чи про що мова?

То, что там прилипли с 1996 разные товарищи с попилом не значит, что с 1991 они нужны только для попила.

Це просто ще один аргумент проти цього утворення.

но были и обратные примеры

Зворотні як? Забрали членство РАЕН через отримання офіційого звання — так?

Про какие ты теории говоришь?

Ловля ящериків, знущання з котів, волновий геном, пам’ять води, оживлення мертвих, вирощування екстрасенсів в лабораторіях, цілющі CD-диски, вот ето вот всьо.

Якби ще їх сторінка відкривалася було б трохи краще.

У тебя с русским языком не лады: «обратные примеры» не так используются в речи.

Поясни як правильно.

Это все сделали академики РАЕН?

В тому числі.

Кто из академиков такую теорию выдвинул?

Нагадаю, що в академіках РАЕН ходив такий собі Куклачьов, який віддавав своїх котів на хімічні експерименти якомусь винахіднику чи то мікрофільтрів, чи ще чогось такого. Що вони там доводили вже не пам’ятаю — телегонію, чи хвильову функцію генома здається.

есть противопоставление, но действия из второй части не являются зеркальными по отношению к первой части

То поясни як правильно це зробити стосовно

дали, например, почетного члена

Що там за протиставлення буде?

Ты про трековую мембрану?

Зробив академік РАЕН. Але академіка РАЕН там не було. І не працювала вона. Але її зробили. І не РАЕН. РАЕН лише гроші відмивали. Тобто РАЕН зробили. Але РАЕН тут ні при чому.

Якого ти лізеш відстоювати це мракобісся мені не зрозуміло — у тебе родич «академіка» РАЕН собі купив, чи що? Якесь публічне самоприниження з незрозумілою метою.

Ну добре, РАЕН, але не РАЕН, академік, але ні, гроші не відмивали, але відмивали.

ясно видна разница между твоим отношением к РАЕН и реальным положением дел

Я навіть не думав, що існують люди які будуть цю шарашку захищати. Трохи навіть розгубився. Це ІМО навіть крутіше за плоскоземельників, прямо левел ап.

Были случаи, когда не давали академика «очень важным» людям

Були випадки коли не давали золоту олімпійську медаль дуже важливим людям, і що?

Что непонятно?

Не зрозуміло який тобі зиск з цієї псевдонауки. Схиляюся до того, що або ти сам, або хтось з твоїх родичів кормиться там.

ты так же ржешь с британских, американских и австралийских ученых?

З вчених? Ні. З шарлатанів — так, звідки б вони не були.

Я так же могу защищать и британских ученых

Не сумніваюся. І аргументи будуть мабуть такі самі — що вони не так сказали, хто конкретно сказав, звідки ти про це знаєш, що вони не так сказали, хто конкретно сказав, ...

Но это же нужно открыть и прочитать, а ты за 10 лет прочитал «не багато» научных трудов

Добре, що є ти який читає всі «наукові праці» за мене і розказуєш мені всю правду про неофіційну науку та її прориви в сфері торсіоних полів, цілющих CD, хвильового генома та іншої телегонії.

чтобы понять, что членами РАЕН могут быть и заслуженные специалисты.

При их давней славе — смешно ;)

Прикинь сколько нужно времени специалисту написать даже такое небольшое эссе! А ведь это только начало: чтобы опубликовать ты пройдешь своего куратора, а потом отдашь в журнал, где ему назначат рецензентов и только после того как ты отбился от них — публикуют.

Чудове виправдання совєцьої бюрократії яка існує лише щоб була бюрократія. Порівняй з — написати статтю у відповідності до вимог і подати на публікацію.

А теперь сравни с тем как можно наваять страничку в лукре или вики.

Або зробити сайт на домені .info. До речі ці рукожопи з РАЕН навіть як лурк чи віка не змогли — їх www.raen.info не відкривається.

Я сейчас говорил не про РФ или Украину

А я одразу впізнав совок за всіми тими штучними перепонами. І так, я вчився в аспірантурі і навіть якісь статті друкували, тому якесь уявлення маю.

Я когда пытался пользоваться Windows Phone 8 — тоже знатно матерился. Наверно рукожопы делали

Не відкривався сайт РАЕН на ньому? Так він ніде не відкривається.

Надо же было так угробить Nokia!

Це ще що, ти ще нанофільтрів не бачив!

Про всяк випадок РАЕН — це не наукова установа, і займається псевдонаукою типо цілющох сили лагідного слова, пам’яттю води, торсіонними полями та іншим подібним — ru.wikipedia.org/...​кадемия_естественных_наук.

лучше lurkmore.to/Раен

Статья от ноунейма из wiki против академика РАЕН Майорова. Ну как бы перевес не на стороне wiki.

РАЕН — «Российская академия естественных наук» — знаменитый сборник фриков всех видов. Они специально сделали название и аббревиатуру похожей на РАН, чтобы лохи ловились :)

Большая советская энциклопедия — источник марксизьмы-ленинизьмы.

Поздравляю вас, гражданин, с облошившись.

«Ты с какого РАЁНа, академик?»

глупость никогда не ходит в одиночестве

У неї ціла РАЕН для цього є.

Я посчитал, что простое объяснение не совсем полно и более противоречиво, чем вариант, который сложнее.

Ты забавный.

Продолжай жить в своём маня-мирке.

За Microsoft можу сказати, що там презентації і навіть те що лише поки ідея регулярно показують і презентують. В Microsoft навпаки проблема visibility — що б такого зробити щоб про тебе і твою роботу знали. Доводиться командам себе рекламувати якими лише можна способами.

И по этому мне никто не мог сказать, что там будет с XBOX Series X еще в октябре

Не зрозумів — ніхто з твоїх знайомих не міг сказати, що буде з чимось там, і це означає, що в MS приховують інформацію про проекти від працівників?

они так же как и вы вращаются в своих кругах и понятия не имеют что там чуть дальше

За наявності бажання дізнатися, що там за межами проекту не складно.

Допустим что там с клавиатурами у MS

Для цього лише варто знайти презентації, а то і просто ПМа якогось з Microsoft Hardware чи як воно там зараз називається.

что за проблемы с подшипником вентилятора в XBOX Series X?

Я навіть не знав що є якийсь XBox Series X, не кажучи вже про підшипники у вентиляторах та проблеми з ними.

Почему ушел Тим Лонго

ХЗ хто це.

почему между презентацией Windows X и ожидаемым выходом такой огромный лаг

Поняття не маю.

За Microsoft можу сказати, що там презентації і навіть те що лише поки ідея регулярно показують і презентують.

Саме так — якщо є бажання, час та можливості можна хочу усі 40 годин на день дивитися презентації інших команд. Просто нагадаю, що в МС лише в США працює близько 100 тисяч людей як FTE.

До того ж на презентаціях саме показують і розказують про нові ідеї, технології та функціональність, а не про те хто і через що звідкись пішов.

вы лично понятия не имеете что творится в соседних подразделениях до тех пор пока не заинтересуетесь определенной темой

Саме так. Але якщо є бажання та можливість то ніяких перешкод дізнатися, і навіть у деталях про проекти та технології інших команд нема у більшості випадків.

Т.е. ваши знания о тех подразделениях находятся на самом высоком уровне

Тобто мої знання знаходяться на тому рівні який мене цікавить. І за бажання рівень знань відносно легко поглибити.

клиентов этих подразделений, ни тем более, клиентов для своих клиентов лично вы не знаете

Більше того — я особисто не знаю клієнтів, чи клієнтів тих клієнтів які використовують те над чим я працюю зараз. Просто через те, що це не моя робота.

тебя никто не будет информировать о том, что делается в производственном отделе или, например, в Zenimax

Це ж добре. Але це не означає, що інформацію про інші проекти від мене приховують.

У тебя есть четко очерченные возможности в рамках твоих компетенций.

Яке це має відношення до теми розмови?

Хочешь прыгнуть выше — готовься к бюрократии.

Штое?! Куди вище, якої бюрократії, для чого взагалі стрибати?

библиотека с разными книгами по разным направлениям. Но без названий а только с кодами. И есть рядом картотека с кодами и кратким описанием книг только тех, к которым вам есть доступ.

Майже так в реальноми житті великі бібліотеки і організовано.

это является сокрытием для вас или нет?

Звісно ні — є можливість чітко визначеним і легальним шляхом отримати доступ до потрібної інформації.

говорит, что все не так, но потом сам же подтверждает, что не знает, что делается за пределами его круга

Саме так — таємниці з абсолютної більшості проектів не роблять. І в той же час мене цікавить лише невелика кількість того, що знаходиться за межами мого поточного проекту. Де протиріччя?

Так что не так?

І дійсно, що не так? Ось у нас є бібліотека з десятками тисяч книг на будь-яку тему. І те що я читаю пригодницькі романи чи фантастику і не знаю щось про обробку металів не означає ніяк, що мені ця інформація (про обробку металів) не доступна.

что именно в этой фразе не соответствует истине с точки зрения вашего личного опыта

Не відповідає дійсності те, що твердження узагальнює всіх працівників і не враховує проекту в якому вони задіяні, історію в компанії та інтереси щодо технологій та продуктів компанії.

обычные работники

это не все работники

А хто тоді ці «звичайні працівники»?

Во-вторых, о какой истории идет речь на примере MS?

На моєму прикладі — я переходив не прото між командами, а між цілими дивізіонами (Servers and Tools, Online, Windows Phone).

как это относится к корпоративной этике на примере MS?

Не знаю як це стосується і чесно кажучи не розумію питання.

в самом низу корпоративной пирамиды находятся те самые

Якщо це про девів, тестів та ПМ то деякі з них займають важливіші і більш впливові позиції ніж деякі з менеджерів. Крім того бувають ситуації коли з різних причин дев виконує функції менеджера.

Але так, є інформація для обраних кіл, але це маркетингова інформація, а не технічна.

Це залежить від стадії проекту я думаю. Є програми Technical Preview, є фінансові дані. У більшості випадків не технічна.

как тогда называлось подразделение по производству мышей, видеокамер и клавиатур?

Microsoft Hardware.

И как бы называлось перемещение между этим подразделением и ребятами, которые строят датацентры?

Це просто зміна команди всередині компанії.

Если ты лично был на всех презентациях всех подразделений (от производственных до разработки ERP), то когда ты работал?

Не був і не розумію для чого це будь-кому взагалі.

все, что касается MS Dynamics для тебя только на самом верхнем уровне

Я лише назву знаю і не уявляю, що воно і для чого.

даже я больше тебя владею в этой области «внутренними знаниями» MS

І вкотре — це не означає, що від працівників приховують цю інформацію. Більше того — при наявності бажання і можливості тому хто всередині компанії набагато легше отримати якусь ексклюзивну інформацію.

обратитесь в Arkane Studios

Я в МС вже 6 років не працюю.

попросите у них информацию об используемой надстройке для движка для deathloop

Я не знаю, що означають всі ці слова. Які мають бути з цим пробелеми — це таємниця, чи цього ніхто не знає, чи ще щось?

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

В контексті цієї розмови йдеться про конкретні лінійки процесорів та технологій навколо них. Не розумію чому той хто працює з подібним не знає які питання задавати.

до корпораций мягко, а иногда и не совсем ограничивающих доступ к информации

Або без обмежень взагалі.

Mike говорит, что знает клиентов своего клиента — nVidia — и знает как и где используется каждый тип процессора данного стороннего для QNX производителя. Напомню: NVidia не владеет QNX и наоборот, т.е. это не общение внутри корпорации.

Майк говорит что он знает всех кастомеров-интеграторов в automotive индустриии которые работают с нашей ОС. На каждого кастомера заводятся описания проектов, над которыми он работает и полное описание платформ. Ибо это важно для работы, чтобы правильно реагировать на реквесты кастомеров. Например кастомер X пишет что ему нужны перламутровые пуговицы и красный квадратик в левом верхнем углу. Кастомер оперирует кодовым именем проекта, который он сам назвал и передал в своё время нам. Я просто делаю поиск по кодовому имени проекта и определяю, что за проект и на какой платформе. Например с той же nVidia — для одних SoC часть делают они, часть мы, для других — всё они, с нас только высокоуровневый софт. И если этот проект где над GPU работает только nVidia своими ресурсами и изменения нужны в GPU драйвере а не уровнем выше, кастомер перенаправляется к вендору.

War has never been so much fun! ©

Ты про песенку из игрушки начала 90х? Стыд и позор не знать что такое cannon fodder!

Mike говорит, что знает клиентов своего клиента — nVidia — и знает как и где используется каждый тип процессора данного стороннего для QNX производителя.

Про це з ним самі розбирайтеся. Я відповідав на цілком конкретне твердження.

Вміння створювати собі труднощі і з боєм та біллю їх долати на рівному місці — це майже національний спорт.

Это относится к корпоративным тайнам.

І ти маєш доступ до цієї таємниці за межами корпорації більше ніж той хто в ній працює?

А вот что именно из себя представляет эта надстройка — это и есть корпоративная тайна.

Надбудова являє собою... надбудову скоріше за все.

Я не розумію суті проблеми бо не маю знань в даній області взагалі. Тому всі ці «движки» та «надбудови» — це для мене просто слова за якими нема ніяких асоціацій.

Смысл эксперимента был в том, чтобы узнать как быстро ты коснешься «стеклянного потолка».

Чому саме зі мною такий експеримент і що він мав би довести? Те що в МС приховують інформацію про технології та подібне? Так ні — я сам у цьому пересвідчився.

Это относится к корпоративным тайнам.

І знову те саме питання — що це за корпоративні таємниці такі, що їх не знають співробітники компанії, але знає нонейм в інтернетах?

Какое имеет отношение твой вопрос к теме разговора?

Він має відношення до сказаного тобою

Это относится к корпоративным тайнам.

Тому і питаю:

що це за корпоративні таємниці такі, що їх не знають співробітники компанії, але знає нонейм в інтернетах?
Интересно где та грань между маразмом, пиздабольством и банальной тупостью?

Тебе виднее, если займёшься само-анализом. Ты, наверное, просто не понимаешь, что владея 60% automotive рынка, на нашу ОС и на нас завёрнуты именно те 60% кастомеров-интеграторов Tier 1, которые предоставляют своё железо в сборе для отладок и прочего custom engineering. Мы ЗНАЕМ под чем кто ездит. Поэтому твои потуги выдавать информацию с педивикии как анализ рынка automotive, да и вообще embedded рынка вызывают очень сильные сомнения в твоей адекватности и тройной фейспалм.

Не надо врать про ОС и остальное если для тебя новость 2014 (открытая и разжеванная кучей журналистов в разных изданиях)

Ты так и не дал ссылку на официальные источники, где сказано, что это VLIW.

С nVidia CPU ты никогда не работал.

Вы фсё врете!!! Ты смешон.

И с вероятностью 146% никогда не пересекался с автопроизводителями как support engineer.

Я не саппорт. Я делаю то, что они используют.

Я уже тебе сказал — если тебе не нравится — нажимаешь Ctrl-W.

И напоминаю:

Ты так и не дал ссылку на официальные источники, где сказано, что это VLIW.
Я лишь указал открытый источник, опубликованный в 2014 году с
подобной информацией, указав, что ты врешь и информация была и ранее публичной.

Источник — статья журналиста. Где официальный источник?

подтвердил вариант VLIW у K1.

Что значит подтвердил? Твой источник просто левая статья в интернете. Т.е. в одних случаях ты веришь постам в интернете без пруфов — в другом нет.

У тебя очень нездоровый эгоцентризм, тебе ничего никто не должен. Или берешь что есть или проходишь мимо.

Круто, конечно. Но ссылку на официальные документы от nVidia ты не дал.

Официальные слайды из презентации nVidia на CES 2015:

И где там про VLIW? %)

У тебя фантазия будь здоров, если Интел выпускает вначале i3, а потом i9, то является ли i9 продолжением или сегментацией?

А где ты в твоих микрокартинках увидел противовес? Просто сравнение одного чипа с другим. Многие интеграторы для luxury сегмента требуют много мощи, информация на CES представлена для них. Противовесы опять же только в твоих выдумках. Low-middle end автомобильная электроника до сих пор делается на K1 и X1 даже для машин, которые будут зарелизены в 21-22 годах, middle high-end на X2 и Xavier.

Ладно, чувак, твой уровень экспертизма просто повергает в шок. Если ты не способен осознать базовые вещи, то рано объяснять остальное.

И еще: назови модель машины, выпущенной в 2019-2020 (это уже не NDA) на базе с Tegra X1.

Это по прежнему NDA.

эту информацию обязательно перепроверю: залезу в открытые sheets и проконсультируюсь у знакомых из СТО. Возможно даже не поленюсь и пойду к диллеру.

В который раз ты показываешь полное незнание устройства автопрома. Каждая модель имеет 2-3 сапплайера, которые реализуют железо на разных компонентах. Это правило supply chains. Дилер, знакомый из СТО владеют лишь знанием тех комплектующих, которые поставляются в этот регион или в определённых годах.

Электроника не обслуживается, модуль полностью sealed, меняется на такой же другой, если модуль будет раскрыт, его стоимость ложится на плечи сервиса. Другой модуль может иметь другие комплектующие, а машина даже другой интерфейс.

Прочитал всю вашу ветку. Вот это у него горит. Теперь я понимаю почему релокейтнутые «синьеры по 5к» становятся в лучшем случае мидлами тут, а то и вообще джуниками и всё заново начинают в европках-канадках-америчке.

Всё так. Пока знакомыми аборигенами на СТО не обзавёлся — не синьйор!

Где и кем?

В любой цивилизованной стране, если произошёл серьёзный инцидент с автомобилем и страховая должна выплатить серьёзные возмещения, а то и пожизненно оплачивать лечение и реабилитацию пострадавших — первым делом они проверяют вмешательство в компоненты автомобиля. Любое сторонее обслуживание модулей (а ля чёрных ящиков) — это вмешательство в работу. Твои источники при возникновении подобного кейса уже бы давно были под судом, а компания в которой они работали — разорена исками.

Сочувствую. У всех есть свои недостатки.

Еще раз спрашиваю: какая модель или хотя бы какой производитель авто ставит X1.

Я не могу сказать.

Я обращусь к знакомым в СТО и выясню что же там на самом деле стоит.

Ты не способен даже прочитать написаное? Что твои «знакомые» на СТО могут знать, если они максимум, что могут, так это заменить модуль, твои знакомые имеют полный список доступных модулей для всех регионов, где производится продажа данной марки машины? Ты ещё к бабке возле подъезда сходи — там 146% достоверная информация :D

или хотя бы какой производитель авто ставит X1

www.globenewswire.com/...​n-of-Autonomous-Cars.html

„We’re combining breakthroughs in AI and high performance computing to build NVIDIA DRIVE PX, the brain of the autonomous car. Today’s announcement with Toyota is the strongest indication that this autonomous future will soon become a reality,” he said.

Что такое nVidia Drive PX платформа — раскопаешь сам, ты же у нас знаток линеек nVidia.

А проследить что одна ссылка поменялась на другую при открытии сайта nVidia — не судьба? В любом случае там в новости указана nVidia Driver PX платформа. Ты просил вводные данные — я тебе их дал.

Кто переименовал? Сейчас продаются Drive PX 2 и Drive Xavier. Старую никто не переименовывал, они её сделали недоступными для новых кастомеров, старых поддерживают 7 лет после продаж. Таковы правила аутомотив рынка.

Хоспади, ты правда не видишь как ты смешон?

Я тебя подловил 2 раза на явном ложном утверждении

Это, наверное, случилось только в чьём-то воспалённом воображении. Где?

Да вот буквально год назад прошивали мой Nissan и у них были куча прошивок почти под каждую модель с тюнигами и без.

Ты про ECU что-ли говоришь? Или про ADAS? Откуда у тебя в лоу-ендовском ниссане ADAS?

Это разные системы вообще. ECU делают совершенно на другой базе.

Я так понимаю там стоит что-то на X2.

Хоспади. Тебе предлагали что-то перепрошить то, что крутится под X2? Тебя развели как лоха. Начиная с того, что без ключей они получат кирпич, заканчивая тем, чтобы что-то перепрошить в IVI/Cluster/ADAS нужно перекомпилить туеву хучу сорцов. Это не микроконтроллер.

Максимум что тебе могли перепрошить — это табличные данные для ECU.

И как калибровка камер (без понятия что они там калибруют в заводских камерах и как) и сенсоров (аналогичный вопрос), но выглядит как обычный булшит. Это как закачать в шину азот или воздух с клубничным ароматом.

Они могут подшаманить на уровне чёрного ящика — послать команду по CAN шине. Где ложь?

Это единственный интерфейс в чёрный ящик. А в чём твоя проблема? И это не перепрошивка, не факт, что значение настройки вообще где-либо сохраниться или сохраниться в флеше для настроек параметров, который сдела специально, чтобы не лезть в чёрный ящик. Где тут перепрошивка?

Какая конкуренция? Ты не перегрелся на зимнем солнце случаем?

Я тебе всё дал, теперь твоя очередь идти к всезнающим бабкам возле СТО %)

Напиши жалобу в спортлото и в лигу сексуальных реформ.

Какую сексуальную реформу ты желаешь произвести над собой? Если что-то отрезать, то мы это быстро.

Хм, в мурзилке к моей тачке написано, шо камеры калибруются сами

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

А откуда я знаю? Написано, что система безопасности, к которой относятся камера в лобовухе и радар в бампере работает с ограничениями в ряде случаев, среди которых
— до 10 секунд после запуска двигателя
— Во время процедуры калибрации камеры сразу после отгрузки машины с завода.

А что оно там реально делает — я без понятия.

— до 10 секунд после запуска двигателя

Если бы делалось за 0.1 сек, ты бы не поверил, что оно того стоит.

10 секунд после запуска двигателя это для того, чтобы дать ему прогреть основные пути хоть на пару градусов и стабилизировать генерируемое напряжение. Никто тут специально не тормозил :)

Чего? Удлинение бампера, автофокус. Ты о чем?

И что с автофокусом камеры в этом случае не так?

А чем она отличается от обычной, кроме фильтров (это обычно стеклышки такие или напыление на линзы)? А еще матрица может быть с повышенной чувствительностью в диапазоне не видимого света.

Скорее всего 2 момента. Реально говенное и медленное железо внутри, а маркетологи это сделали из минуса плюсом.

Скорее всего камера подстраивает фокус, а так как и камера дешевая и железо для обработки, то это действительно долго. А если туман на улице, то и получаются 10 сек.
Для тебя на 50 баксов дороже машинка пофиг, а для производителя — это 50 баксов на сотнях тысяч машин. Получаются уже миллионы.

Для примера. Французская контора RECIF, ее сортировщики пластин стоят на всех фабах в мире и стоят дорого. Но на сборку всегда шло самое дешевое, что можно было найти на рынке. Контора на этом не теряла, а даже зарабатывала. Заказчики еще оплачивали поездки инженеров конторы по ремонту и переналадке тех сортировщиков. А да назывались они на конторе роботами. И это область микроэлектроники.

А как твоя камера работает если упали капли дождя на лобовое стекло?

Меняет фокус, но он должен меняться быстро.

Капли дождя вызывают сферическую деформацию изображения — fish eye. Её фокусом не решают.

говорит о калибровке в 10 сек

Обычно это автонастройка камеры auto-exposure, яркость и прочие параметры. Затем во время работы происходит плавный тюнинг, который ты не замечаешь.

Если сильный дождь — да, а если слегка моросит или туман тоже будет fish eye?

А если птичка насрала на лобовое стекло? Камера — это вспомогательная система в нормальных ADAS, просто ещё один источник информации, но не основной. Те, у кого они основной продаются только в солнечных американских штатах, где практически нет грязи и слякоти.

10 секунд? Что же это за камеры такие?

Ну например такие:
www.ovt.com/...​15/OmniVision_OV10635.pdf

10 секунд — это потолочный параметр, при низкой освёщенности камера может выдавать 2-3 кадра в секунду из-за большого времени экспозиции, для автонастройки нужно, например 20-30 кадров, чтобы получить обратную связь. Вот и считай. При ярком солнечном свете автонастройка будет произведена за доли секунды.

Камера выдаст столько сколько попросишь, а вот дальше ты уже посчитаешь статистики и выдашь параметры. Но можно делать так. Ставишь параметры, получаешь кадр, меняешь параметры, получаешь кадр и до тех пор пока не сойдется. Таким путем можно и часами вычислять их.

Ты прав и не прав одновременно. Камера работает по принципу развёртки CRT телевизора до сих пор, даже цифровые, поэтому если выставили 30Hz (FPS) — она будет передавать 30 FPS, но одно и тоже, пока не будет готов новый фрейм. Камеры, которые передают напрямую с сенсора — это лоу-энд, который подразумевают обработку сигнала на стороне хоста.

Ставишь параметры, получаешь кадр, меняешь параметры, получаешь кадр и до тех пор пока не сойдется.

Только это делает сама камера.

Горчак, не напрягай. Когда ты прописные истины с умным видом травишь, напрягает.
Но если шину на 1024×1024 (ну или больше) канала сделаешь, то в общем проблем с передачей не будет, главное, чтобы света для сенсора хватило.

Только это делает сама камера.

Это где ты камеру с такой безумной прошивкой видел?

Обычно сделали снимок с него посчитали нужное и выставили. Максимум сделали контрольный, чтобы проверить то, что выставили. Хватит и 3-5 снимков — это при 30 FPS — сам посчитаешь нужное время. Более того и полноценный снимок делать не нужно, а можно уже во время считывания с сенсора параметры считать начать.

Это где ты камеру с такой безумной прошивкой видел?

Витя, ссылку на омнивижин камеру я дал. Все предложения с пустой заявкой на шнобелевскую премию высылай им по адресу.

Капли дождя вызывают сферическую деформацию изображения — fish eye.

Во только эти рыбьи глаза во множественном числе и еще и перемещаются. Какая тут нафиг калибрация???

Обычно это автонастройка камеры auto-exposure, яркость и прочие параметры.

Но 10 сек для такого это ооооочень доооолгггггоооо.

выключиться может, от перегрева, например (опять же, цитирую обычный юзерский хандбук, а не инженерную документацию, которая мне недоступна)

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

О, так уже ты согласился что калибровка камер — это развод для лохов?

Мне больше всего тут была новым специфика WC — мне в обычной работе такое не попадалось. Просто неоптимальный доступ, false sharing и прочее — сколько угодно, но это всё на WB.

А вот это

Любое чтение из WC региона памяти также осуществляет сброс буфера в память, работая как posting read механизм.

это имеется в виду сброс той же строки, что читается, или всего региона? (хм)

это имеется в виду сброс той же строки, что читается, или всего региона? (хм)

По логике вещей — должно быть всего региона, оно ж расчитано не на рандом доступ, а последовательный, когда ты что-то заливаешь в эту память. Это может быть и буфер для обмена с устройством, так и framebuffer.

но наиболее яркая и простая для понимания

Прикалываешься?
Да на это, чтобы только найти места тормозов и найти, как починить 3-6 месяцев уйдет.
Подобное могут себе позволить только конторы типа той, в которой ты работаешь.
И второе, учить подобное и использовать на практике можно только в конторе подобной той, где ты работаешь.

Представь таким занимаются в единорожке или на галере. Кто позволит столько времени ковыряться в этих нюансах процессоров и памяти и платить всё это время таким спецам большие деньги.

З.Ы. Ну и мне не нравится такое современное усложнение работы процессоров и памяти и кешей. Это усложнение не позволяет использовать возможности процессоров и памяти современной в массовом программировании. Как минимум нужны либы, что хоть частично избавляют от таких трюков и имеют полноценную документацию. Второе — это усложнение всё дальше отделяет конторы-гиганты от мелких контор по качеству их продуктов. Получается, что только богатая контора может выпустить качественный продукт (я не про продукты уровня СД-еджектор).
А еще добавь к этому всякие мельдауны и подобное, патчи для которых меняют работу процессоров с памятью и кешированием.

Кто, кроме Горчака подобное делал сам тут (проживая не в Канаде, Германии, США и не работая на богатой конторе)? Отзовитесь.

Кто, кроме Горчака подобное делал сам тут

Когда я проходил собеседование, чтобы работать тут контрактором из Украины — им не очень нравилась идея контракторства. И они очень сомневались, в дискуссии был упомянут один из драйверов — VESA драйвер, который очень тормозил у заказчика, но так видеоконтроллер там был очень нестандартный на то время, то драйвера не было и никто его писать не собирался. Я сказал, давайте поступим так — две недели, если я его не ускорю в несколько раз, то на работу меня не берут, если ускорю, то берут. Deal is a deal.

Если кто помнит, для доступа к VESA видео-памяти можно было проводить только через окно размером в 64Kb в среднем через VGA сегмент. Через API можно было получить указатель на код внутри видео BIOS чтобы выполнить переключение банков памяти для записи и чтения, а можно было вызвать прерывание BIOS Int10 для этого. Дефолтный драйвер вызывал через эмуляцию Int10. Я переделал код на получения указателя для подпрограммы переключения банков из биоса, но быстрее стало немного. Много дней я делал замеры, дизассемблировал код и смотрел почему там медленно пока до меня не дошло, что код был в ROM на PCI устройстве. Все ROM на PCI по умолчанию не используют кеши, а находясь на PCI устройстве доступ тормозиться ещё раза в 2-4, т.к. запросы на чтения проходят через PCI bridge. В драйвере я скопировал PCI ROM в обычную кешируемую память, далее была сложность оформить эту память как EXECUTABLE со стороны процессора, из-за секьюрити, многие ОС выключают эту возможность. После я получил просто сумасшедшее ускорение. Далее я решил его ускорить ещё — все записи проводились в shadow RAM в кешируемой памяти а затем копировались с помощью оптимизированного memcpy() в video RAM. Далее я включил Write-Combine для этого региона, ведь отрисовка — это 95% записи и 5% чтения из видео памяти, но чтения обслуживала shadow RAM и тоже было быстро. Получился настолько быстрый драйвер, что можно было даже тягать окошки без особых тормозов.

Работу я получил :)

Так я тебя и не критикую. Я прекрасно знаю, что ты спец в своей области.

Ты делал? Или слышал, что где-то кто-то в стиле «по ночам там ходит черный погроммист»?

Т.е. тебе в оном и признаться стыдно?

Alex Rzvd
час назад

Делали, BSP и сейчас есть. Прикол ещё может быть в том, что в больших конторах тоже не сильно хотят/могут таким заниматься. Поэтому могут и аутсорсить
Ответить Поддержать
Viktor Chyzhdzenka
час назад

Ты делал? Или слышал, что где-то кто-то в стиле «по ночам там ходит черный погроммист»?

Я в такую проходил интервью два года назад.
Но им в тот момент нужен был только джанговод.

Но вопрос мой был о другом. А я понял, если нужна уборщица в компанию, где работает Горчак, это тоже считается.

Но вопрос мой был о другом.

Я на него ответил. Люди ваяют свои железки. Или тебе нужно чтобы и сами SoC проектировали (хотя бы на уровне «склеим вот такие готовые ядра»)?

А я понял, если нужна уборщица в компанию, где работает Горчак, это тоже считается.

Смешно, но не в тему.

Не розумію, чому ти вважаєш, що такі проблеми тільки в гігантах вирішують?

Ми ще 17 років тому пиляли систему віртуалізації FreeVPS в маленькій американській конторці Positive Software. І були попереду Parallels із їх Virtuozzo, могли нарізати фізичну пам’ять, а не віртуальну, як у них (це дуже важливо якщо, наприклад, якую java клієнт хоче гоняти), був віртуалізований шедулер, була підтримка віртуалізації дискових квот (одна з найскладніших задач була), віртуалізація всього мережевого стеку, був свій віртуальний ethernet-драйвер із нарізкою пропускої здатності. До речі, потім конотору викупила як раз велика корпорація (Comodo) й проект поховала. Тож, великий не завжди гарно :)

А візьми, наприклад, XEN for ARM. Його запилили хлопці із київського GlobalLogic (зараз більшість тої команди в EPAM, якщо не помиляюсь). Дуже цікавий і складний проект:
wiki.xenproject.org/...​ion_Extensions_whitepaper
Зараз його використовують у всьому світі.

Та багато чого цікавого робиться. Просто далеко не все виходить в паблік.

Ну embedded скоріш за все буде теж розвиватися від атмела в пральній машині до джаваскрипту на хромі в тій же пральній машині.

А замість бетонного чи чавунного якоря буде використовуватися масив оперативки :)

В стиралке часто есть кусок балласта, чтобы её не носило при отжиме. Вот туда и пойдёт.
Или ты под «якорем» имел в виду именно это? Тогда меня термин удивляет.

Да на это, чтобы только найти места тормозов и найти, как починить 3-6 месяцев уйдет.

С чего это? Тут можно за неделю сузить поиск до конкретного типа операции.

Представь таким занимаются в единорожке или на галере.

У меня на прошлой работе было (не единорог и не галера, нормальная продуктовая). Надо прилетевшее сообщение (100-200 байт полутекста, 15-20 AVP) препарировать и выслать дальше (или не высылать; обычно высылать).
Собственно тест работы сообщения показал, что все варианты разложить сообщение по атрибутам (даже в супероптимальном варианте, массив атрибутов, большинство инлайнятся в структуры) в ~3 раза дороже, чем просто манипулировать сообщением как строкой... а вся разница в том, что строка занимает те же 200 байт, а минимальный массив получался где-то 500.
Вот вам и кэш...

А вот там один сайт на жабаскрипте в 10 раз ускорил.

Ну можно такой начальный дизайн придумать, что и в 1000 раз ускорится.

Зачем придумывать?) Другие уже сделали))
Лет пять назад пришлось мне портировать с дельфы на шарп узкоспециальный оптимизационный проектик, так вот, там для проверки на деление на ноль использовался try/catch....

для проверки на деление на ноль использовался try/catch

говорят, пока исключение не вылезет, оно почти не тормозит. То есть, какой-то шанс, что будет быстрее, чем if().

Всё так. Но дать явную пометку типа [unlikely] было бы полезнее (если компилятор поддерживает).
JITʼы используют это в варианте — не проверять, а если вылезет машинное исключение, тогда уже реагировать (а если доля таких исключений превосходит некоторый порог — то перекомпилирует в более пессимистичный вариант), так работает, например, Hotspot.

говорят, пока исключение не вылезет, оно почти не тормозит. То есть, какой-то шанс, что будет быстрее, чем if().

Во входных данных ноль встречался довольно часто, так что замена try/catch на if ускорила раз в 15) Да, ещё там промежуточные результаты сохранялись в текстовом файле и перед началом очередного прохода парились (а проходов было 10K+)

Часто эффективнее к входному числу прибавлять маленькое и все работает быстро, точно и никаких делений на 0.

Для целых чисел отлично работает, но не для double. Ты ж знаешь, какой цирк с мантиссами случается при сложении/вычитании. А там как раз все было дробным с большим количеством знаков после запятой.

Вообще-то это стандартный трюк для double. Для целых всё сложнее.
И нет там цирка, есть четкие стандарты.

Для целых всё сложнее.

для целых n >= 0 прекрасно работает
а цирк, это вот такие приколы:
habr.com/ru/post/258483

В Києві є automotive проекти як мінімум у трьох лідерів ринку. На співбесідах в такі проекти, буває, про кеш також запитують.
Тож стаття дійсно дуже корисна тим, що показує, як саме розуміння роботи кеша допомагає вирішувати задачі, які можуть виникнути перед розробниками ПЗ на таких проектах.

ніт, там бінарні дерева просять обходити і про діамантове наслідування розказувати, нікому той кеш нафіг потрібен

Так, бінарні дерева там дійсно просять обходити.
Якось так сталося, що про наслідування мене востаннє питали на співбесідах років десять тому.

судя по порядку величин в

41.44 Mb/s

это точно был не

memory bandwidth

Почему?

Если следовать классическому определению — memory bandwidth is the rate at which data can be read from or stored into a semiconductor memory by a processor. То это именно он и есть. Процессор при данном режиме кэширования быстрее не может.

Прочитав статтю на одному подиху, наче детективну історію.
Відразу ж видно високий професіоналізм автора, і що особливо цікаво — на реальних прикладах показана необхідність розуміння роботи кеша для розробників ПЗ для embedded пристроїв.

роботи кеша для розробників ПЗ для embedded пристроїв

якщо цей кеш буде в embedded пристрої

Звісно, для розробників ПЗ для embedded пристроїв без кеша необхідність розуміння роботи кеша може бути і не настільки актуальною, як для розробників ПЗ для embedded пристроїв з кешем, але оскільки в будь-який момент розробнику ПЗ для embedded пристроїв без кеша можуть запропонувати написати ПЗ для embedded пристроїв з кешем, то на всяк випадок розуміння роботи кеша не завадить навіть розробникам ПЗ для embedded пристроїв без кеша.

Embedded — он разный. И если уже говорить о тенденциях, количестве предложений и зарплатах, то рано или поздно эмбеддерам микроконтроллеров стоит свичнуться в эмбеддеров на SoC.

У нас тут в наших степах нема особливо вакансій підтримувати BSP та лізти до ядра, а лінунс ембедед мігрує в такий собі бекенд на C++, Java, Rust, Python, bash, Lua думаю, Go теж скоро буде, як і node js.
Тобто свічнутися в бекендщики/фулстекери мікроконтролерщикам.

Да вроде у гигантов аутсорсинга всю жизнь были подобные проекты, особенно у тех, кто в automotive сидит.

формочки на хідюніті малювати в Qt

Тут были статьи и про ядреную разработку и GPU и хайпервайзеры. Значит есть... ну или было :)

я про руст писав, і що значить що 100500 руст вакансій у лідерах появилося?

Значит есть... ну или было :)

или «и ты говори» ))

Не зрозумів, як MOVNTDQA, яка гріла процесор в середині статті, перестала його гріти в кінці.

Різні типи кешування регіону пам’яті, котрий використовується. В першому випадку в одному з напрямків кеш не працює, проц тупить на доступі до кожного ворда, тому процес роботи з пам’яттю довгий, проц мало відпочиває, тому гріється.

загрузка ядра процессора, которое занимается копированием из Write-Combining (WC) региона памяти составляет около 30%, что довольно таки много, делая embedded процессор слегка тёплым, в районе 45-50 градусов Цельсия
Вариант действий номер 2. Мы кладём и ложим данные для обработки медиа-процессором в кэшируемую память. Но надо позаботиться о том, чтобы данные из кэша записались в память.

Именно так, как объяснил Денис, данный процессор на чтение некушируемой памяти тратит в ~100 раз больше тактов, задействует контроллер памяти на борту для каждой операции вместо кеша, спать некогда. Не используются «burst» групповые операции при работе с памятью. Ну и как я написал — не то, чтобы он был горячий, но мониторинг показал увеличение с дефолтных 38-40 градусов до 45-50.

Какими инструментами пользуетесь для профилирования приложений с такими проблемами?

Такие проблемы можно определить только косвенно. Например у нас есть продукт на базе Eclipse — www.qnx.com/...​/analyze_performance.html , который может снимать трейсы всей системы и потом детально под микроскопом их разглядывать. Как правило они видны как процессы или потоки, которые едят CPU под 100% в определенные моменты времени без перерыва. Дальше остаются детали — понять почему большая загрузка. В случае описанном в самом конце статьи — такие проблемы решаются только аналитически.

Или например, взять тот же пример VA API из статьи — вызываются функции vaCreateImage() и затем vaMapBuffer(). По сути чёрный ящик. Память выделяется драйвером и мапится в адресное пространство процесса и какой режим кеширования он выберет неизвестно по-началу. Анализируется скорость доступа с помощью нашей библиотеки, которую мы можем подлинковать в любой продукт — она произведёт все замеры. Дальше снимаем дамп процесса через /proc/ и смотрим с какими аттрибутами память была выделена и где она физически находится и кто её owner. Далее в исходниках смотрим почему именно так, а не иначе (описанный случай с LLC). Ну и затем пытается решить проблему.

У процессоров есть performance counters, по которым можно получить данные типа «мы 90% времени стоим в ожидании памяти». А дальше уже только разбираться, почему такое, оценив, какие цифры нормальны.
В Linux я для такого применял обычный perf. В других ОС должны быть аналоги.
Ну а специфику происхождения проблем (как в описанном, какие регионы памяти с какими свойствами) это уже только знать или гуглить...

Интересно. Но, фундаментальная проблема не в описываемых автором деталях, а глобальная. Эффективный алгоритм работы с кэшем должен предвидеть использование данных и в каком качестве. То ли для чтения, то ли для записи. Да и еще глубже. Так ли принципиально что данные изменились для актуального использования. Автор не внимательно изучил предлагаемую мной архитектуру процессора. Там эта фантастика реализуема.

Эффективный алгоритм работы с кэшем должен предвидеть использование данных и в каком качестве.

Чем меньше искусственного интеллекта и больше контроля над ним в процессоре, тем более быстрее и прогнозируемо можно написать код. Детерминированность всегда была краеугольным камнем в разработке. Фантастика нам не нужна.

Буквально месяц назад был сильный идоло-пад, то ли карантин плохо влияет, то ли к людям приходит старость без мудрости.

«I hope AVX-512 dies a painful death, and that Intel starts fixing real problems instead of trying to create magic instructions to then create benchmarks that they can look good on,» wrote Torvalds. ... He notes that «in the heyday of x86», Intel’s rivals always outperformed it on FP loads.Jul 13, 2020

www.zdnet.com/...​tperformed it on FP loads.

Всё, чувак закостенел и новое прошло мимо его понимания. Он даже не понял, что дело далеко не в FP loads....

Детерминированность всегда была краеугольным камнем в разработке.

Увы, физический мир не детерминированый. Так что надо иметь инструменты и такие. Никто не отменял применение инструментов с умом.

Всё, чувак закостенел и новое прошло мимо его понимания.

«чувак» как раз по делу сказал, просто в фальшивом мире, где тебе улыбаются в лицо, сложив руку в дулю за спиной, не воспринимают адекватно подобную прямоту и открытость
а вот беглочитатели и быстрокомментаторы таки явно недопонимают, что активация AVX-512 кратно снижает производительность CPU Intel на всех других инструкциях

а вот беглочитатели и быстрокомментаторы таки явно недопонимают, что активация AVX-512 кратно снижает производительность CPU Intel на всех других инструкциях

Смотря от чего отталкиваться и что брать за базу. Первое правило — халявы нет. У процессора есть базовые частоты и набор turbo boost частот. То, что одно ядро получает больше частоту turbo boost за счёт других — это не кратно снижает производительность, а заставляет другие ядра работать на штатной частоте. Покупая процессор 2.4GHz с turbo boost под 3.2Ghz не стоит ожидать постоянной работы на 3.2GHz, а стоит исходить из того,что будет работать под 2.4GHz всегда.

отталкиваться от того, что люди таки не читают
на CPU Intel активация AVX-512 снижает именно БАЗОВЫЕ частоты кратно, на некоторых моделях вплоть до 0.8GHz
P.S. AMD EPYC при активации AVX2 на всех ядрах не снижает базовые частоты

на CPU Intel активация AVX-512 снижает именно БАЗОВЫЕ частоты кратно, на некоторых моделях вплоть до 0.8GHz

То, что имплементация на _некоторых моделях_ не совсем удачная — не делает это расширение ужасным или ненужным. Первые SSE в многоядерных процессорах создавали ещё больше проблем.

Например, это исследование hal.archives-ouvertes.fr/hal-02167083v2/document показывает, что на процессорах 5-летней давности УЖЕ такого эффекта нет — However, AVX512 seem to have a different behavior where its power consumption is lower than the other instructions despite providing better performance

Почему Линус разморозился только сейчас? Ну и AVX512 — это целая серия команд, которая появлялась не одним куском, а постепенно и мы её используем также без какой-либо драмы вокруг неё. И объявлять всё это ненужным — как-то недалеко. Ему не нужно — нам нужно.

Например, это исследование hal.archives-ouvertes.fr/hal-02167083v2/document показывает, что на процессорах 5-летней давности УЖЕ такого эффекта нет

и, даже в специально отобранных для «исследования» процессорах, частоты все равно снижаются
а Xeon 3104 3-летней давности просто своим существованием наглядно опровергает это исследование, снижая базовую частоту с и так убогих 1.7GHz до совсем уж неприличных 0.8GHz при активации AVX-512

Ему не нужно — нам нужно.

ну и зачем тогда это впиливать везде, а не только для эмбеддет

Скинь какую-то доку по этому поводу

Xeon 3104

Посмотри правде в глаза — 6-ядерный процессор с TCASE
78°C, и TDP 85W при базовой частоте 1.7GHz — они пойдут на любое преступление, чтобы оставаться в заданных пределах. Это далеко не производительный сереверный процессор. Я вообще слабо представляю, какую нишу он занимает и зачем он нужен.

У него даже ниша не прописана Intel’ом, как HPC, Enterprise, просто стоит прочерк: ark.intel.com/...​8-25m-cache-1-70-ghz.html

ну и зачем тогда это впиливать везде, а не только для эмбеддет

Ну IP core не будут переделывать, слишком много нужно перетестировать, поэтому набор команд есть всегда при использовании определенной архитектуры. Когда-то доходило до смешного, когда AMD в своих Geode процессорах лепили MMX и SSE, которые там вообще еле шевелились, на что они отвечали — это для совместимости с существующими приложениями, а не для скорости.

8-сокетная машина с 28-ядерными CPU будет достаточно производительной?
Xeon 8180
Base Frequency 2.5 GHz
Max Turbo Frequency 3.80
AVX-512 Base Frequency 1.7 GHz
Sockets 2S/4S/8S

AVX-512 Base Frequency 1.7 GHz

И что? Они понижают частоту ядра, которое использует AVX512, а не то, о чём ты говорил выше, другие ядра подвержены минимальным изменениям, как раз то, о чём писалось в статье, которую я привёл.

Смотри табличку — там предоставлены все детали по изменениям частот и максимальным Turbo Boost частотам в зависимости от использования. По ядрам: en.wikichip.org/...​/intel/xeon_platinum/8180

По ссылкам типа такой идут массовые плачи о том, что переход на AVX512 занижает итоговую производительность. Есть пример даже где вроде бы частота снижается на копейки (3.1->2.9), но и итоговая производительность соответствует не 1.9x от AVX256, а ~0.95 — лучше бы не включали.

Ну и влияние на _соседние_ ядра убивает логику шедулера. Так что я в принципе согласен с Линусом: если бы на одном ядре что-то менялось от этого только на время работы команд — да пожалуйста, но когда это превращается в неуправляемую ерунду — оно того не стоит...

Но виновата не технология, а иплементация. Я выше привел пример с AMD Geode, а до этого были и Cyrix первые, в которых MMX являлась серьезным замедлителем. И в программах того времени определяли, что за процессор, чтобы разрешить или запретить оптимизацию на MMX.

А Линус против технологии как таковой, хотя даже тот же AVX512 — это целый зонтик расширений, а не одно единственное.

Ну и влияние на _соседние_ ядра убивает логику шедулера.

С первыми многоядерными и SSE было тоже самое, SSE на двух ядрах превращалось в ступор, который убивал всю производительность. Пережили, переделали. Всякое бывает, но самая идея и технология не виноваты.

Но виновата не технология, а иплементация.

Зачем делать имплементацию, заведомо зная про проблемы?
Снижение частоты идёт даже на AVX-256. Что-то в консерватории там не то.

А Линус против технологии как таковой, хотя даже тот же AVX512 — это целый зонтик расширений, а не одно единственное.

У него позиция вполне понятная:
1. Ложка дёгтя против бочки мёда.
2. Видя, что AVX256 не научили не тормозить с 2013-го, вводить AVX512 с ещё большим торможением, создавая проблемы соседним ядрам(!) - преступление.

Если бы от этого можно было нормально использовать без торможения только новые команды и масочные регистры, но оставаясь в пределах 128 бит, если надо... — то ещё можно было бы смотреть.
Но если этого нет, а осописателям приходиться разгребать то дерьмо, что навалили процессоростроители... я бы тут ещё в 2 раза больше факов показал.

. Видя, что AVX256 не научили не тормозить с 2013-го, вводить AVX512 с ещё большим торможением, создавая проблемы соседним ядрам(!) - преступление.

К сожалению, они просто не расчитывали на постоянный workload, паттерн использования при дизайне был другой, по идее должны были быть всплески и пульсы команд. Например, на многих уровнях в процессоре не происходит понижение частот, если частота появления команд меньше threshold’а опредленного. На серверном рынке барыгам, которые продают виртуальные процессоры пришлось несладко, конечно. Но влияние на соседние ядра можно просто создать и так — пример в моей статье. И чем больше ядер, тем большее адище можно устроить. Тут только спасает аппаратный partitioning, но барыги все равно продают виртуальные ядра даже после partitioning’а.

Но если этого нет, а осописателям приходиться разгребать то дерьмо, что навалили процессоростроители... я бы тут ещё в 2 раза больше факов показал.

Осописателем не приходится делать ровным счётом ничего, чтобы показывать факи. Thermal и Power throttling никто не отменял, к понижению частот нужно быть всегда готовым. На самом деле причин Throtlling’а около шести в интелловских процессорах.

Розказували мені про один автомобіль, в якому ABS і дисплей на одному процесорі під гіпервізором.

Навіть не знаю, чи вони бариги, чи це вже brave new world...

Если гипервизор работает «железобетонно» в плане как изоляции, так и выделения гарантированных долей времени и прочих ресурсов, то пусть.
Но что-то я в это слабо верю...

Но что-то я в это слабо верю...

Почему?

Потому что ошибки есть везде, а тут ещё прошло мало времени, чтобы этому всему быть вылизанным, а как автопроизводители экономят на спичках — мы видим по Тойоте и Фольцу.
Да, это аргументация системы «с миру по нитке», но для личной веры при отсутствии прямого взаимодействия и более конкретных аргументов — устраивает полностью.

а как автопроизводители экономят на спичках — мы видим по Тойоте и Фольцу.

Там нет такой уж страшной экономии. Сейчас выдам тайну Полишинеля %) У каждой линейки машин существует два, а то и три-четыре полностью альтернативных комплектов всей электроники, на случай если поставщик или софта или железа склеет ласты. Также с этой электроникой постоянно собирают статистику и если количество отказов одного типа довольно высоко его меняют на электронику другого производителя. Вполне возможно, что остальное сваливают в страны третьего мира, тут правды никто не знает. Решения с хайвервайзером — это luxury сегмент. Например, я помню у mitsubishi опцию в прайсе — добавить мультимедия систему за 10К баксов, там не только мультимедия система, но беда, например, у mitsubishi — это то, что покупая аутлендер за 20К, 10К никто за рюшечки платить не будет, а премиум сегмента у них нет. Другое дело, Cadillac — это практически весь премиум сегмент и там дешевые системы будут только в самом нижнем ценовом диапазоне, а в остальных premium по дефолту.

Тойота, Фольц, Митсубиши, Ниссан — это ягоды с одного куста по сути. Не стоит ожидать супер решений на борту.

Там нет такой уж страшной экономии.

Я говорил не только про электронику. См. тему Фольца + тесты дизеля.

Раньше такого не допускали — видимо, не было причины.

У каждой линейки машин существует два, а то и три-четыре полностью альтернативных комплектов всей электроники, на случай если поставщик или софта или железа склеет ласты.

И что, меняют каждые 10000 выпущенных машин?
Если просто держат в запасе, то это невыгодно тому поставщику.

Про цену — понятно, тут всё криво и косо из-за сложности переключения. Увы.

И что, меняют каждые 10000 выпущенных машин?

Врядли по количеству определяют, на сколько я помню по месяцам, машины, выпущенные в таких-то кварталах с одной электроникой, в других кварталах с другой. Это связано с supply chain, когда на складах одного типа становится меньше чем другого типа их меняют. Юзер видет немного измененный GUI на кластерной панеле, а в качестве развлекательной системы, везде Android, похожий как две капли или в виртуалке или на живой системе (самоубийцы). Ну а в среднем юзер даже не догадывается об существовании альтернатив.

Из того, что я вижу на VW (мы с ними не работаем напрямую), там электроника нескольких грейдов, где кастомер может выбрать что ему нравится больше. Т.е. завязана на комплектацию автомобиля по умолчанию. Но она хоть и предназначена для разных комплектаций, тоже вполне заменяемая между собой.

Понятно, спасибо. Забавный метод диверсификации всего включая риски...

Там другая цель — не дать андроиду или другому безобразию, которое живёт под виртуалкой существленно влиять на хост в плане производительности. Там полная дискриминация виртуалок.

Например, мы используем виртуализацию для интеловских GPU — GVT-g: wiki.archlinux.org/index.php/Intel_GVT-g . Где используется приоритезация и pre-emption, чтобы обеспечить 60 FPS на хосте за счёт виртуальных клиентов, а Андроид или другое под виртуалкой работает по принципу, что останется.

Чи гіпервізор може гарантувати неможливість атак типу thermal throttling? Чи frequency throttling з використанням AVX512? Чи скидання кеша для всіх ядер, як описано в статті.

Розумію, що всі небезпечні операції мали б виконуватися на нульовому кільці, але ж діри трапляються.

Я намагаюся розносити різні задачі по різних фізичних процесорах, щоб спокійніше спати вночі. І не завантажувати процесор і мережу вище номіналу. Мав колись цікаву розмову з інженерами з Siemens про real-time і Ethernet...

Разница в том, что ты owner всей системы и можешь контроллировать всё, весь софт и т.п., в случае же с хостингом или облаком ты не контроллируешь ничего, если купил виртуальный процессор. А если ещё учесть и жадность хостеров, то можно смело запускать виртуалок на 133%-150% от количества ядер, чтобы уж совсем не простаивали.

Розумію, що всі небезпечні операції мали б виконуватися на нульовому кільці

А от не називайте більше його «нульовим» :)
Це аж до x86 було нормою, що 0 — найбільш впливовий, але після введення SMM, який тоді має бути −1, система зламалась і в новіших розробках (ARM/64, RISC-V, etc.) 0 це user, а рівень машини це, наприклад, 3.
Тепер краще казати «supervisor level», «hypervisor level» і «machine level». А ще є secure mode, в якого ті ж рівні, але окремо...

Чи скидання кеша для всіх ядер, як описано в статті.

Скидання кеша це лиш часткове уповільнення, і взагалі на вході в привілейований режим невідомо, що в кеші — може, йому самому треба скинути все попереднє (а враховуючи Meltdown/Spectre/etc. — і при виході у менш привілейований режим може бути корисне скинути все). Але якщо залізо буде досить сучасне — там скоріше виділятимуть фіксовані сектори кешу кожній задачі. До речі, таке вмів Pentium Pro.

А ось регулювання частоти від всяких AVX це серйозніше. Щонайменше, супервізор має бути освідченим, що юзерська задача таке запросила, і коли дозволяє — підкоректувати свою логіку...

Для АБС нужно считать 8 датчиков и выдавать команды по 4 каналам... +1 на чек енжин ...

Чтобы вырезать аппендицит нужно строить больницу©

Пускай себе гипервизор на слив в унитазе поставят!
(Тут я вспомнил про японские стульчаки... )

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

Даже ежу понятно, что эта гарантия не сработает никогда, а тем более строителям процессоров с 40-летней историей.

Но влияние на соседние ядра можно просто создать и так — пример в моей статье.

Кэш — относительно известное зло (то есть он, конечно, добро при нынешней тормозной DRAM, но выражение сохраним). И с ним свои уже известные проблемы. А тут новый эффект.

Тут только спасает аппаратный partitioning

А он на x86 работает? Что-то я пропустил.

Thermal и Power throttling никто не отменял, к понижению частот нужно быть всегда готовым.

Ну в большинстве случаев ОС стоит на пути оповещения об этом и сама принимает решение, кроме совсем уж критических перегревов... насколько я помню (оно с каждым поколением чуть меняется). А тут что — запрещать AVX512 юзерленду, чтобы взорвалось на первой команде, и тогда разрешать, но пинать шедулер «эй, тут сейчас начнётся фигня»?

А он на x86 работает? Что-то я пропустил.

patents.google.com/patent/US8862828B2/en

В двух последних линеек Xeon оно там есть и работает. Вопрос насколько глубоко реализован partitioning.

ну и зачем тогда это впиливать везде, а не только для эмбеддет

Ну и, кстати, у нас почему-то довольно-таки много заказчиков сидят на Xeon процессорах в embedded. Раньше Intel делал даже линейки мобильных Xeon для embedded. Может именно эта модель имеет нишу для home / embedded (негласную).

Да вы что, кто такой этот Линус Торвальдс? А вот синьйор Mike Gorchak...

Таки да. Горчак это та рабочая лошадка, которая делает, а Торвальдс уже давно занимается административной работой.

То може підете й запитаєте думку коня в якому-небудь радгоспі: шо від думає про тенденції розвитку процесорів? Ну або принаймні як збільшити врожайність вівса (це коням має бути ближче).

Нет, я спрошу у таракана — он знает всё и ответы на все вопросы. А если что не согласуется указом изменит, чтобы согласовывалось.

Тобто спитаєте в адміністратора?
В принципі правильне рішення, а інакше навіщо в радгоспі агрономи?
Нехай робочі конячки самі все вирішують, адже ж вони більше всіх працюють.
І знаєте ще в чому тут ще закавика?
Лінус Торвальдс перед тим як стати адміністратором таки шось зробив дуже корисне.
Але шось мені підказує шо щоб не зробив Горчак — він навіть і близько не стане Лінусом Торвальдсом.
Надмірно роздуте ЧСВ завадить.

Тобто спитаєте в адміністратора?

Нет, у локального Бога (он же таракан).

Спасибо, интересно! Многих вещей не знал (посмотрев всё доступное по оптимизациям от гугла и фб с cppcon).

Дуже цікаво. Багато про що перший раз чув, що є Write combining режим, це, типу теж кеш але з L1 одразу на шину ? Про команди MOV, які специфічно використовують кеш. Мабуть, з часів, коли всі кеши і контролер пам’яті переїхали в процесор все стало складніше ніж колись.

Дуже цікаво. Багато про що перший раз чув, що є Write combining режим, це, типу теж кеш але з L1 одразу на шину ?

Сейчас они его называют write buffer. Отдельный он или они берут кэшлайны из L1 — это скрыто под капотом. Говорят, что у Skylake он состоит из 56 кэшлайнов, 56*64=3584 байт. Так что можно сказать, что очень маленький временный L1.

все стало складніше ніж колись.

В 90-е я случайно попал в программу поддержки разработчиков от Intel, когда при регистрации (а они принимали только штатовские адреса), указал USA, штат не помню какой, а в графе адрес — Ukraine, etc. Какое было удивление, когда на домашний адрес пришёл именно мешок книг, килограмм 15-20. Среди них был двухтомник по архитектуре 486, по 200 страниц каждый. А сейчас тот PDF на который есть ссылка в статье содержит 5000 страниц. Так что немного написали нового, да :)

Я тоже помню заказал где-то тогда. Но одну книжку. Таможня попросила за растаможку книжки стоимостью 1 бакс 25 баксов. Пришлось отказаться от книжки.

В 90-е я случайно попал в программу поддержки разработчиков от Intel, когда при регистрации (а они принимали только штатовские адреса), указал USA, штат не помню какой, а в графе адрес — Ukraine, etc. Какое было удивление, когда на домашний адрес пришёл именно мешок книг, килограмм 15-20. Среди них был двухтомник по архитектуре 486, по 200 страниц каждый.

о, а я в ті часи Intel CD замовив і він прийшов, з купою pdf

Большое спасибо, очень интересно !

Подписаться на комментарии