LINUX.ORG.RU

Новая оптимизация функции memset() в glibc

 , , ,


0

2

Инженер из Intel, Ноах Голдштейн, оптимизировал функцию memset() в библиотеке glibc. Данная оптимизация даёт прирост в производительности порядка 7.5% на десктопных версиях процессоров архитектур Skylake-X и Ice Lake. У серверных версий прирост в производительности немного ниже, прежде всего из-за более низкой общей производительности одиночного ядра.

В прежней реализации функции memset() использовалась ассемблерная инструкция rep stosb. До недавнего времени эта инструкция работала достаточно быстро, за счёт внутрипроцессорной оптимизации zero-over-zero writeback. Однако в этой оптимизации была найдена потенциальная уязвимость, которая может привести к атаке по побочному каналу. В результате оптимизация zero-over-zero writeback была отменена, что и привело к ухудшению производительности rep stosb. В новой версии memset() инструкция rep stosb всё ещё используется, но при выполнении более строгих условий.

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

Прежняя версия описания:

/* memset is implemented as:
   1. Use overlapping store to avoid branch.
   2. If size is less than VEC, use integer register stores.
   3. If size is from VEC_SIZE to 2 * VEC_SIZE, use 2 VEC stores.
   4. If size is from 2 * VEC_SIZE to 4 * VEC_SIZE, use 4 VEC stores.
   5. On machines ERMS feature, if size is greater or equal than
      __x86_rep_stosb_threshold then REP STOSB will be used.
   6. If size is more to 4 * VEC_SIZE, align to 4 * VEC_SIZE with
      4 VEC stores and store 4 * VEC at a time until done.  */

Новая версия описания:

/* memset is implemented as:
   1. Use overlapping store to avoid branch.
   2. If size is less than VEC, use integer register stores.
   3. If size is from VEC_SIZE to 2 * VEC_SIZE, use 2 VEC stores.
   4. If size is from 2 * VEC_SIZE to 4 * VEC_SIZE, use 4 VEC stores.
   5. If size is more to 4 * VEC_SIZE, align to 1 * VEC_SIZE with
      4 VEC stores and store 4 * VEC at a time until done.
   6. On machines ERMS feature, if size is range
	  [__x86_rep_stosb_threshold, __x86_memset_non_temporal_threshold)
	  then REP STOSB will be used.
   7. If size >= __x86_memset_non_temporal_threshold, use a
	  non-temporal stores.  */

>>> Подробности



Проверено: Zhbert ()
Последнее исправление: Wizard_ (всего исправлений: 2)

Ответ на: комментарий от pfg

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

Мы просто знаем что это злая карла, вот и зовем его правильно.

BydymTydym
()
Ответ на: комментарий от LamerOk

Ты гвоздиками прибитые «правила русского языка» из пальца высосал. Тебе уже объяснили, что есть разные контексты, в которых принято передавать иноязычные имена определенным образом, иногда - различным. И эти традиции пошли и от Библии, и от Торы, и от историков разных эпох и лет, и от лингвистов. Попробуй себе это уяснить, отрешившись от квадратно-гнездового способа мышления.

IRASoldier ★★
()
Ответ на: комментарий от IRASoldier

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

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

Имена известных исторических личностей, персонажей книг и т.д. - это как раз самые частные случаи.

Так, к примеру имя Christopher Robin в отношении конкретного персонажа конкретной книги мы переведём как «Кристофер Робин», а имя Christopher Columbus в отношении конкретного человека как «Христофор Колумб», не зависимо от того, как именно мы будем передавать английское имя Christopher на русский язык. При этом, если современного американца будут звать Christopher Columbus, его имя будет передаваться по традиции передачи современных английских имён и должно быть передано как «Кристофер Колумб».

И эти традиции пошли

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

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Так, к примеру имя Christopher Robin в отношении конкретного персонажа конкретной книги мы переведём как «Кристофер Робин», а имя Christopher Columbus в отношении конкретного человека как «Христофор Колумб», не зависимо от того, как именно мы будем передавать английское имя Christopher на русский язык.

А «Юваль Ноах Харари» как ты запишешь, согласно своим странным правилам? Обрати внимание на то, что тут уже есть замена одного несуществующего в русском языке звука буквой Х.

zg
() автор топика
Ответ на: комментарий от zg

Если ты вот про этого:

Юваль Ной Харари (ивр. יובל נח הררי‎; род. 24 февраля 1976[1][2][…], Кирьят-Ата, Хайфский округ)

то прям так и запишу.

Обрати внимание на то, что тут уже есть замена одного несуществующего в русском языке звука

Ты вообще хоть примерно понимаешь какое количество звуков не существует в русском языке? А ещё есть 100500 видов ударений в предложении и разные тональности звука.

Русский алфавит - это не про передачу звука, это про передачу слов.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

то прям так и запишу.

То есть Ноах из США должен быть Ноа, потому что американцы так говорят, но Ноах из Израиля должен быть Ной, потому что Ламерок и такие же умники из русской Википедии упёрлись рогом и на то, как человека на самом деле зовут им насрать? 😄

Ты вообще хоть примерно понимаешь какое количество звуков не существует в русском языке?

Не капитань и не выпендривайся. Про замену несуществующего звука я сказал лишь к тому, что имя «Юваль Ноах Харари» уже адаптировано для русскоязычных.

zg
() автор топика
Ответ на: комментарий от zg

То есть Ноах из США должен быть Ноа, потому что американцы так говорят, но Ноах из Израиля должен быть Ной, потому что Ламерок и такие же умники из русской Википедии упёрлись рогом и на то, как человека на самом деле зовут им насрать?

Именно. Потому что только так обеспечивается биекция имён и идентификация объектов с их (имён) помощью между текстами на разных языках.

А особо одарённые личности могут самовыразить свою непередаваемую уникальность каким-нибудь другим образом - песнями, там, плясками, танцами. Картины писать, стихи сочинять - вот это вот всё.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

И им надо следовать

  • Язык не замер в развитии, он развивается до тех пор, пока им пользуются.

  • Традиции возникают, существуют и умирают, в зависимости от того, находит ли их кто-то годными. Одновременно может существовать несколько разных традиций.

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

Напиши это на доске мелом сто раз.

IRASoldier ★★
()
Ответ на: комментарий от LamerOk

Потому что только так обеспечивается биекция имён и идентификация объектов с их (имён) помощью между текстами на разных языках.

Понятно. Ламерок - на всю голову ламерок.

zg
() автор топика

Вот тут ОП-шабесгой защищает еврейское произношение для американца, а между тем ВСЕ израильские премьер-министры меняли свои восточно-европейские и немецкие фамилии, чтобы они были похожи на ближневосточные :) Я отобрал несколько самых известных, но на самом деле там все поменяли себе фамилии, можете это проверить сами:

https://ru.wikipedia.org/wiki/Список_премьер-министров_Израиля

Бен-Гурион, Давид -- Давид Иосиф Грин, Отец Давида, Виктор (Авигдор) Грин;

Меир, Голда -- Голда Мабович родилась в Киеве, Отец Голды, Мойше-Ицхок (Моисей) Мабович, работал плотником, а мать Блюма (в девичестве Найдич) — кормилицей[9];

Рабин, Ицхак -- Отец Рабина Нехемия Рабичев родился в 1886 году в городке Сидоровичи[1], недалеко от Киева;

Перес, Шимон -- Шимон Перский, Его отец, Гецл (Ицхак) Перский;

Барак, Эхуд -- фамилия при рождении Бруг, Родители — Исраэль Брог (1910—2002), родившийся в городе Паневежис (Литва), а затем оказавшийся в Мелитополе (Украина);

Нетаньяху, Биньямин -- Отец Биньямина Нетаньяху — выходец из Польши профессор истории Бенцион Нетаньяху (Милейковский);

Шарон, Ариэль -- Отец Шмуэль Шейнерман;

Выводов не делаю, просто весьма потешно.

MoldAndLimeHoney
()
Ответ на: комментарий от IRASoldier

Одновременно может существовать несколько разных традиций.
Язык коверкается только тогда, когда изменения нелогичны,

Манюнь, в 5-ом «Б» это, может, и так, но ближе к старшим классам тебе всё расскажет Марьиванна.

LamerOk ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Ну так Салам Алейкум от Шолом Алейхем не сильно отличается :)

gns ★★★★★
()
Ответ на: комментарий от Aber

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

Могу только посоветовать прочитать тред.

LamerOk ★★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

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

zg
() автор топика
Последнее исправление: zg (всего исправлений: 1)
Ответ на: комментарий от LamerOk

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

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

Исаа́к Ю́дович Ази́мов , родился между 4 октября 1919 года и 2 января 1920 года, деревня Петровичи. Что не так?

Aber ★★★★★
()
Ответ на: комментарий от Aber

И звали его там даже не Исаа́к.

zg
() автор топика
Ответ на: комментарий от Aber

Какой-то тред беспробудного тупянка. То ли это тиктоки так действуют, то ли твиттер… Я же русским языком написал:

Могу только посоветовать прочитать тред.

Тут меньше 125 постов. Что может быть проще? Не иначе как реддит. Чем ещё это можно объяснить?!..

Айзек Азимов значит не Айзек а Исаак :)
Что не так?

>> 17636430

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

А если он американец - то его имя передаётся в соответствии с правилами для английских имён. Т.е. Ноа. Как, например, Gabriel будет Гэбриэлом, а не Гавриилом. И не Габриэлем

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от IRASoldier

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

Я не топлю за то, как правильно с точки зрения локальных языковых норм. Но идёт такой «Ноах», ему кричат «Ной»… а ему похер, этош не к нему обращаются, а знать все мировые правила образования его имени он не обязан. Не обязан же?

Это лирика, просто меня по громкой как-то в Сеуле в аэропорту вызывали, я очень не сразу понял, что собственно… мой туфля! Поэтому ну его, такие правила. Как носитель имени его фонетически произносит, пусть так и произносится.

ИМХО (напоминаю: Имею Мнение Хрен Оспоришь), Ной это именно что региональная адаптация Ноах. Адаптация, более удобная/привычная/ещё что-то там, но не само имя. Потому как будут стоять рядом два человека: Ной и Ноах, и будут откликаться каждый на своё имя, а не оба два на «Ной» или «Ноах».

hatred ★★★
()
Ответ на: комментарий от zg

Главное, что бы тебя поняли. В ХТТП или ГЦЦ в письменной речи не пишет? Норм. В том локальном социуме, что общаешься, тебя понимают, когда говоришь

«аш-тэ-тэ-пэ» и прочие «гэ-це-це» ну и норм.

К слову, я чаще говорю «хэ-тэ-тэ-пэ» =-)

У меня, к примеру, при первой командировке, был простой вопрос к носителю: «блин, а как вы аббревиатуры правильно произносите?», и далее пример с FAQ, с кратким пояснением, как у нас принято. После чего точки были расставлены и в другом социуме мой «хэ-тэ-тэ-пэ» и «фак» превратились в «эйч-ти-ти-пи» (ну сорян) и «эф-ай-кю».

Ещё раз: главное - что бы друг друга поняли. Остальное - мелочи.

hatred ★★★
()
Ответ на: комментарий от hatred

Это лирика, просто меня по громкой как-то в Сеуле в аэропорту вызывали, я очень не сразу понял, что собственно… мой туфля! Поэтому ну его, такие правила. Как носитель имени его фонетически произносит, пусть так и произносится.

Так вот поэтому и есть локализация имён. Правильно произнести даже 习近平 (это который «Си Цзиньпин») или 김정은 (который в СМИ «Ким Чен Ын», но может записываться и «Ким Джонъы́н») средний русский физически не может (согласная в 习 среднее между «с» и «ш», звук в конце 平 не «н», а как в слове long, по Киму видно даже из вариантов транскрипции). А Владимир Путин в КНР произносится как Фуладзимиер Пуцзин.

Но идёт такой «Ноах», ему кричат «Ной»…

А США ему кричат «Ноа» и он оборачивается. Так же как Иван со второго-третьего раза станет оборачиваться на Айвэн (потому что проще привыкнуть, чем всех местных переучить).

monk ★★★★★
()
Ответ на: комментарий от hatred

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

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

MoldAndLimeHoney
()
Последнее исправление: MoldAndLimeHoney (всего исправлений: 1)
Ответ на: комментарий от hatred

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

zg
() автор топика
Ответ на: комментарий от hatred

Йоханан окунатель. Каким образом окунание в водоёме стали называть крещением совершенно непонятно.

zg
() автор топика
Ответ на: комментарий от MoldAndLimeHoney

вырос и живет в США, где никаких Ноахов с роду не было

Есть Noah и есть Noach. Это всё не от того, что американцы якобы не могут произнести Ноах (ещё как могут), а потому что запись неверная и изначально пришла от неносителей английского, которые не знают как правильно. Айвен (Ivan) вместо Иван - это точно такая же история. Любой русский Иван привык записывать своё имя четырьмя буквами и в английском языке есть вроде бы те самые четыри буквы, однако не владея английским он не знает как эти четыри буквы читаются. А записал бы Eavan, звучал бы более похожим на своё реальное имя образом.

zg
() автор топика
Ответ на: комментарий от LamerOk

Мы переводим голдштейна

Золотокамушкин. Не благодари.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от zg

Айвен (Ivan) вместо Иван - это точно такая же история. Любой русский Иван привык записывать своё имя четырьмя буквами и в английском языке есть вроде бы те самые четыри буквы, однако не владея английским он не знает как эти четыри буквы читаются. А записал бы Eavan, звучал бы более похожим на своё реальное имя образом.

Вот точка зрения американцев: https://www.youtube.com/watch?v=9d1Z46gh6GY

monk ★★★★★
()
Ответ на: комментарий от monk

Не американцев, а жителей Америки. Там несколько русских, мексов и прочей странной публики.

zg
() автор топика
Ответ на: комментарий от zg

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

То есть Xi Jinping они произносят как «SHEE jin-ping», а не «кси». Или тот же Linus. Если Торвальдс, то будет «линус», а если Полинг, то будет «лайнус».

monk ★★★★★
()
Ответ на: комментарий от zg

однако не владея английским он не знает как эти четыри буквы читаются

Читаться в английском может как угодно. Как читается Jean? Может Жан (мужское имя), а может Джин (женское).

monk ★★★★★
()
Ответ на: комментарий от LamerOk

Мы переводим голдштейна.

Кстати, раз пошла такая пьянка… Почему «штейн»???

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

monk ★★★★★
()
Ответ на: комментарий от zg

Расслабься. Мне много что режет и слух, и чувство прекрасного, но если изменить нельзя, то что нервные клетки тратить? Разве что самому делать так, как считаешь правильно (к слову, возможно кто говорит так, как говорит, именно так и считает, например, по религиозным убеждениям).

hatred ★★★
()
Ответ на: комментарий от hatred

Вот я и делаю и говорю как считаю правильным. Пусть расслабятся те, кто говорят неправильно и ещё поучают.

zg
() автор топика
Ответ на: комментарий от monk

Почему «штейн»???

Потому что так исторически сложилось. Немецкий корень " -stein-" в именах передаётся на русский как «штейн» транслитерацией. А как там его читают в разных сортах баварского - проблемы нижнесаксонцев.

Если немец, то
Если учитывать американское произношение

Хорошая фонетика - мёртвая фонетика.

LamerOk ★★★★★
()
Ответ на: комментарий от hatred

Имя же в первую очередь, должно голосом произноситься,

Нет, конечно же. Что за бред? Сфигали «Пекин» и «Beijing» должны произносится по китайски, особенно с учётом того, что на китайском кантонском и на мандарине оно скорее всего будет звучать по разному?

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

Как носитель имени его фонетически произносит, пусть так и произносится.

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

LamerOk ★★★★★
()
Ответ на: комментарий от hatred

Ещё раз: главное - что бы друг друга поняли.

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

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

Дальше пояснение для совсем уж дебилов:

Имена - это глобальные идентификаторы. Примерно такие же как имена глобальных переменных. Чтобы читатель мог сопоставить один и тот же объект (человека, страну, корабль, компанию и т.д.) в разных текстах, их имена на письме должны быть идентичны. Точно так же как они должны быть идентичны в разных модулях программы, чтобы компилятор мог сопоставить разные обращения из разных модулей к одной и той же глобальной переменной.

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

И тупые аргументы в духе «ну ведь creat это не правильное слово», не канают, потому что критерием «правильности» для имён является успешное сопоставление из разных текстов имени одного и того же объекта.

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

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

LamerOk ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Когда перейдете к обсуждению memset в glibc?

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

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Имена - это глобальные идентификаторы. Примерно такие же как имена глобальных переменных. Чтобы читатель мог сопоставить один и тот же объект (человека, страну, корабль, компанию и т.д.) в разных текстах, их имена на письме должны быть идентичны.

Не обязательно. Мы же все знаем, что пророк Мухаммед, пророк Мохаммед, пророк Магомет и пророк Мухаммад — одно лицо. А Наполеон Бонапарт — семь разных.

monk ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.