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)

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

Там выше речь шла о знаниях, накопленных цивилизацией

Всё верно. И цивилизация последние пять тысяч лет копит знания в письменном виде. Перепевы песен и пересказы стихов не вытягивают нужный объём. Поэтому письменная речь сейчас является фактически основной формой коммуникации. Обладая знанием только письменной речи в самом минимальном объёме вполне возможно в совершенно незнакомой стране сориентироваться на местности, воспользоваться общественным транспортом. И это потребует даже меньших усилий, чем устные коммуникации.

Ты сказал, что не сможешь найти соответствие

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

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

Ноа — мужское имя

Тебе уже множество раз сказали, что речь идёт не о мужском Noah, а о женском Noa.

  1. Ты вообще понимаешь, что это ты сейчас не со мной, а со словарём разговариваешь? Или ты уже настолько деградировал, что не видишь разницы?
  2. Ты вообще понимаешь, что в словаре есть обе статьи - и для женского, и для мужского имени? Или ты уже настолько одебилил, что не понимаешь, что в русском языке могут сосуществовать оба имени - и мужское, и женское. Быть на письме совершенно идентичным. Иметь совершенно разную этимологию. Для русского языка, как и для всех алфавитных языков с близким к фонетике написанием, это норма.
LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Всё верно. И цивилизация последние пять тысяч лет копит знания в письменном виде.

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

Я этого, конечно же, нигде не говорил.

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

А вот заставлять читателя идти в гуглить в яндекс «что там этот пидарас-переводчик опять наотсебятил» - это натуральная форма свинства по отношению к читателям.

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

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

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

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

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

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

Господи, какой же ты тупой.

И основное накопление знаний произошло исторически совсем недавно,

Нет, моя милая крошка. Это фонетика современного израильского иврита «родилась» совсем недавно - меньше каких-нибудь ста лет назад. Примерно в III веке нашей эры древний иврит, на котором написана библия и из которого взяты все библейские имена, вышел из разговорного употребления. Не осталось ни одной собаки, которая могла бы издать хоть один звук на иврите.

Многие просто не знают как правильно транслитерировать свои имена на английском. Поэтому Давид превращается в Дейвида, Дана в Дейну и так далее. Если бы вместо Dana записывали Danna, то никаких Дейн не было бы.

На момент, когда эти имена «транслитерировали» на английский язык израильского иврита и его фонетики просто НЕ СУЩЕСТВОВАЛО.

Вот только наш еврей оказался из США, где его все зовут «Ноа».

Да, все безграмотные зовут Ноа, а родители зовут Ноах.

Ни мать нашего голдшейна, ни отец, ни другая родня, ни кто-либо другой 75 лет назад не говорили на иврите. Такого разговорного языка просто не было. Они могли говорить на английском, на французском, на польском, на немецком, но на иврите они не могли издать ни звука. Когда нашему голдштейну давали имя, на израильском иврите говорило полтора шизика.

Теперь перечитай весь тред и посмотри, как ты обосрал все штаны по самый воротник.

Хотя, учитывая твою тупизну, я не уверен, что ты сможешь это осознать.

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

Господи, какой же ты тупой.

На себя посмотри, дурачок.

Нет, моя милая крошка.

Морду бы тебе набить, за такие намёки.

Это фонетика современного израильского иврита «родилась» совсем недавно - меньше каких-нибудь ста лет назад. Примерно в III веке нашей эры древний иврит, на котором написана библия и из которого взяты все библейские имена, вышел из разговорного употребления. Не осталось ни одной собаки, которая могла бы издать хоть один звук на иврите.

Да, такие собаки как ты и по-русски толком не разговаривают. Ивритом продолжали пользоваться всё это время не переставая в религиозных целях, которые, в отличии от христианства, одними лишь молитвами не ограничиваются. Опять же, в отличии от христиан, у евреев была практически поголовная грамотность, в том числе и в иврите. Евреи продолжали пользоваться ивритскими имена. А идиш - это вообще смесь старого немецкого и иврита.

На момент, когда эти имена «транслитерировали» на английский язык израильского иврита и его фонетики просто НЕ СУЩЕСТВОВАЛО.

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

Ни мать нашего голдшейна, ни отец, ни другая родня, ни кто-либо другой 75 лет назад не говорили на иврите. Такого разговорного языка просто не было. Они могли говорить на английском, на французском, на польском, на немецком, но на иврите они не могли издать ни звука. Когда нашему голдштейну давали имя, на израильском иврите говорило полтора шизика.

Они говорили на идиш, в котором полно ивритских слов и Ноах - это именно Ноах, а поц вроде тебя - это именно поц. Современному ивриту таки больше 75-и лет и 75 лет назал на нём уже разговаривало около миллиона людей.

Хотя, учитывая твою тупизну, я не уверен, что ты сможешь это осознать.

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

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

Ни мать нашего голдшейна, ни отец, ни другая родня, ни кто-либо другой 75 лет назад не говорили на иврите.

У человека есть его имя. Оно записывается именно так как звучит или фонетически наиболее близко к языку написания.

Стало быть, «Noah» -> «Ноа». Что мешало тебе согласиться в самом первом посте? ;)

Имена никак не изменялись, Ноах всегда был Ноахом

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

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

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

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

Твой «Ноах» всегда был на записи просто «Нх».

Вот же достал! Теперь ещё и ивриту меня учить пытается, ламерок хренов. Иди «нх»!

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

индийцев побольше англичан всегда было

И что? Традиции правления и само правление источником имело Британию. Мало ли, какие туземцы стали подданными короля - от этого король не становится туземцем.

А какими они землями в данный момент управляют — это уж технический момент

Не совсем. Они не являлись, управляя Британией, скажем, королями Саксонии или Вестфалии. Они были королями только Британии. Следовательно - и именоваться должны по британской традиции. Как минимум, для того, чтобы добрый люд доброй старой Англии не говорил - «мы что теперь, подданные какого-то немца?».

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

Традиции правления и само правление источником имело Британию

Германию. Точнее некоторые немецкие королевства. Англичане тут такие же туземные подданые, как и индийцы.

Они не являлись, управляя Британией, скажем, королями Саксонии или Вестфалии.

А Ганновера были, например. Однако не вижу почему это должно быть важно.

Как минимум, для того, чтобы добрый люд доброй старой Англии не говорил - «мы что теперь, подданные какого-то немца?».

Индийцы же терпят. И эти потерпят.

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