Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#hardware #cpu #zen5

Я не верю вот этому выводу:

"Расширение архитектуры Zen 5, проведённое на всей протяжённости исполнительного конвейера вместе с оптимизацией под SMT, улучшение предсказания переходов и полноценная поддержка AVX-512 кажутся довольно внушительными переменами. Однако проблема в том, что в десктопном воплощении Zen 5 все эти глубинные преобразования оказались фактически единственным проявлением прогресса. И это вполне может стать причиной, по которой заложенный в Ryzen 9000 теоретический потенциал окажется не столь заметен в повседневном использовании. Раньше вместе с совершенствованием архитектуры AMD уделяла внимание внедрению улучшений и на более высоких уровнях — в топологии процессоров, в поддержке ими более скоростной памяти, в возможностях SoC и платформы и проч. На этот же раз модернизация затронула одну лишь только внутреннюю архитектуру ядер и ничего больше."

Если действительно в Zen5 столько улучшений, какого хрена этого не видно в тестах?

"Блок предсказания переходов давал высокую точность и в архитектуре Zen 4, но в Zen 5 разработчики AMD нашли возможность сделать его ещё эффективнее. Достигнуто это не только существенным увеличением глубины таблиц истории переходов, но и путём отслеживания более длинных ветвей кода. В итоге ядро Zen 5 способно накапливать статистику по 24 тыс. адресов переходов, что примерно втрое превышает возможности Zen 4. Причём наряду с ростом доли правильно определённых ветвлений кода AMD смогла добиться и прибавки в скорости выдачи таких предсказаний до двух штук за такт.

Ещё один важный кирпичик в фундаменте общего повышения темпа работы конвейера в Zen 5 — ускоренная выборка инструкций. Фактически AMD перелопатила всю его входную часть, сделав её полностью двухпоточной. L1-кеш инструкций сохранил свой размер 32 Кбайт, но получил возможность обрабатывать две 32-байтных выборки каждый такт против одной такой выборки в Zen 4. Декодер инструкций при этом тоже стал двойным, и фактически это означает, что преобразование x86-инструкций во внутренние микрооперации теперь может происходить в два независимых потока. Вместо декодирования шести инструкций за такт, как это было в Zen 4, Zen 5 может декодировать по четыре инструкции дважды. В том же направлении изменился и кеш декодированных инструкций. Его объём стал чуть меньше — 6 тыс. записей (было 6,75 тыс.), но зато теперь он способен возвращать каждый такт по шесть инструкций два раза — отдельно для каждого потока. Довольно любопытно, что в этой части ядра AMD внесла комплекс изменений, явно предназначенный для повышения эффективности технологии SMT. И это решение диаметрально отличается от курса, взятого Intel, которая в своих свежих архитектурах планомерно отказывается от поддержки Hyper-Threading.

С учётом ориентации на SMT ширина архитектуры Zen 5 выросла по сравнению с Zen 4 на треть. Теоретически новые ядра AMD способны обрабатывать по восемь инструкций одновременно на всём протяжении исполнительного конвейера. И диспетчер, и блок отставки, завершающий исполнение микроопераций, рассчитаны именно на такой параллелизм, в то время как в Zen 4 эти же функциональные блоки были спроектированы под работу с шестью инструкциями одновременно. Расширение сопровождается увеличением размера буфера переупорядочивания (очереди отставки) с 320 до 448 инструкций и целочисленного регистрового файла с 224 до 240 записей, что также содействует наращиванию возможностей ядра процессора по параллельному исполнению инструкций.

Чтобы задержек не возникало при ожидании необходимых данных, которых для более широкого ядра очевидно требуется больше, разработчики Zen 5 увеличили объём кеш-памяти данных первого уровня с 32 до 48 Кбайт. Вместе с тем с 8 до 12 путей выросла ассоциативность этого кеша (и, соответственно, его эффективность), но латентность осталась на привычном уровне 4 такта."
#hardware #cpu #zen5

"Что ещё интереснее, впервые со времён Zen 2 кеш первого уровня существенно нарастил пропускную способность. В Zen 5 он может отдавать четыре 64-байтных или принимать два 64-байтных блока за такт (против трёх и одного соответственно в Zen 4). Более того, в Zen 5 стал быстрее работать и кеш второго уровня. Его ёмкость сохранилась на уровне 1 Мбайт, но зато пропускная способность стала выше благодаря тому, что для соединения с L1-кешем стала использоваться вдвое более широкая 512-битная шина, через которую за такт можно прокачать 64 байта данных.

Но и это ещё не всё. Разработчики AMD нашли возможность немного поднять и производительность кеш-памяти третьего уровня. Её скорость в процессорах AMD ограничивается возможностями шины Infinity Fabric, которая в процессорах Ryzen среди прочего объединяет части L3-кеша, попадающие в разные CCD-чиплеты. Сама эта шина в Zen 5 не имеет никаких отличий от предыдущих реализаций, но обновлённый L3-кеш научился принимать и отдавать в одно ядро по 32 байт данных за такт — как раздельно, так и одновременно. В процессорах прошлого поколения достижение такой пропускной способности L3-кеша было возможно лишь при одновременной работе с ним нескольких ядер.

Все перечисленные улучшения в подсистеме кеширования Zen 5 сделаны ради того, чтобы минимизировать простои исполнительных блоков, ведь их число в новой версии архитектуры тоже выросло. Целочисленная часть в новом ядре насчитывает шесть арифметико-логических (ALU) и четыре адресных (AGU) устройства, а вещественночисленная — ещё шесть FP-устройств.

При этом интересным нововведением в исполнительном домене стал переход AMD к единому планировщику для всех целочисленных ALU-портов, хотя в прошлых архитектурах компания опиралась на набор отдельных планировщиков для каждого порта. Такая реализация сложнее, но должна быть эффективнее, поскольку все исполнительные устройства теперь получают инструкции из общей очереди. Дифференциация осталась лишь для AGU-портов, которые работают с собственным отдельным планировщиком.

Забавно, но блок Zen 5, отвечающий за работу с числами с плавающей точкой, устроен ровно противоположным образом. В нём применяется три равноправных планировщика, и это явное развитие прошлых идей — в Zen 4 таких планировщиков было два. Но FP-блок в Zen 5 претерпел кардинальные изменения в другом — его исполнительные устройства научились работе с 512-битными векторными регистрами, что означает полноценную поддержку исполнения AVX-512-кода. Теперь такие инструкции могут обрабатываться процессором за один приём, а не дробиться для отправки на исполнительные устройства на пару 256-битных команд. Благодаря этому ядра Zen 5 должны получить очень весомый прирост производительности в задачах, поддерживающих AVX-512 и VNNI-инструкции. Тем более что попутно AMD удалось улучшить исполнение некоторых операций с плавающей точкой: например, сложение в Zen 5 выполняется за два такта вместо трёх, которые требовались процессорам AMD ранее.

К тому же одним только изменением исполнительных устройств дело не ограничивается. AMD говорит о «сквозной» поддержке AVX-512 на низком уровне, а это означает ещё и то, что L1-кеш данных получил специальный механизм для работы с 512-битными векторами. Это выражается в том, что FP-блок Zen 5 научился при необходимости загружать оттуда сразу два 512-битных вектора за такт — вдвое больше, чем было возможно в Zen 4."

https://3dnews.ru/1110998/obzor-ryzen-7-9700x
Forwarded from asisakov
Статзначимость коэффициентов при регрессии

Вчера спорили с ребятами на работе по поводу статзначимости и как ее считать. После вопроса про оценку значимости коэффициента я ожидал услышать что-то типа бутстрапирования выборки.

Однако, ребята вспомнили интересную формулу из книжки по эконометрике (Jeffrey M. Wooldridge. Introductory Econometrics. A modern approach). Вот та самая формула ниже:

Var(beta_j) = sigma^2 / (SST_j * (1 - R_j^2 )) - уравнение для оценки дисперсии признака j

sigma^2 - дисперсия ошибки

SST_j = sum((x_ij - mean(x_j))^2) - суммарная дисперсия выборки по признаку j

R_j^2 - оценка R^2 от оценки регрессии этого признака j на остальных

При помощи нее мы оениваем дисперсию, и затем можем поглядеть, попадает ли 0 в доверительный интервал, и насколько узок или широк этот самый доверительный интервал.

Но самое интересное еще впереди. Что меня уже зацепило, так это формулировка одной из переменных данной формулы: оценка R^2 от оценки регрессии этого признака j на остальных. Что-то напоминает?

Действительно, это оказался тот самый VIF. Если мы спустимся от этой формулы (в книжке это формула 3.51 на странице 94) ниже на 4 страницы, мы реально увидим переход к этой формулировке:

Var(beta_j) = (sigma^2 / SST_j) * VIF_j


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

#ml #statistics
👍1
#gpt #physics

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

https://www.youtube.com/watch?v=m6nZ9h7S7nw
#skipthis

Пополнился мой список вещей, которые не должны существовать:

1) благодарности в книге
2) сноски в книге или статье
3) фраза "withouth further ado"
😁3
Forwarded from Пездуза
⚡️У Медведева взорвался электрический штопор