Математическое и компьютерное

Вот неко­то­рые дума­ют, что если вычис­ле­ния пере­не­сти на ГПУ вме­сто ЦПУ, то:

1. Всё сра­зу зара­бо­та­ет в сто раз быст­рее.
2. Будет сра­зу рабо­тать луч­ше.

Авот­шЫш. Не все­гда, и не вез­де.

Вот сде­лал я ней­ро­сеть, модель оди­на­ко­вая, доволь­но неслож­ная, пяти­слой­ная, сто ней­ро­нов в каж­дом слое, ито­го 50 тысяч пара­мет­ров — по нынеш­ним мер­кам вооб­ще три копей­ки.

Запус­каю на ЦПУ — сеть тре­ни­ру­ет­ся за три мину­ты, и выда­ёт доволь­но нор­маль­ный резуль­тат, с точ­но­стью в пре­де­лах 0.7%

Запус­каю на ГПУ — сеть тре­ни­ру­ет­ся уже за пять минут, а не за три, а резуль­тат у ней — замет­но хре­но­вей, с погреш­но­стью уже 1.23%

Я пола­гаю, что послед­нее это пото­му, что TensorFlow, будучи запу­щен­ным на ГПУ, по умол­ча­нию до сих пор исполь­зу­ет 16 бит для пред­став­ле­ния чисел с пла­ва­ю­щей запя­той, вме­сто 32 бит или даже 64. Надо будет погля­деть, мож­но ли его заста­вить исполь­зо­вать боль­ше бит. Хотя, конеч­но, мате­ма­ти­ка на ком­пью­те­рах — она дело такое, что вооб­ще-то никто гаран­тии, что резуль­тат вычис­ле­ний будет оди­на­ко­вым, если про­грам­ма запус­ка­ет­ся на про­цес­со­рах раз­ной архи­тек­ту­ры, нико­гда не давал. Осо­бен­но, если чис­ла такие, что пред­ста­вить их точ­но в фор­ма­те IEEE-754 невоз­мож­но (напри­мер, деся­тич­ная дробь 0.2).

А вот поче­му оно ничуть не быст­рее рабо­та­ет на ГПУ, чем на ЦПУ — для меня уже загад­ка. RTX3080 вро­де как пошЫр­ше дол­жен быть во флоп­сах, чем i9-11900k @ 3.5GHz. Может быть, такая малень­кая модель его про­сто нагру­зить тол­ком не в состо­я­нии.

И да, «что­бы два раза не вста­вать».

Как наи­бо­лее пра­виль­но счи­тать и пред­став­лять сред­нюю ошиб­ку в вычис­ле­ни­ях?

Вот, напри­мер, если в одном пред­ска­за­нии из двух про­грам­ма ошиб­лась на +100%, а во вто­ром — на ‑100%, вряд­ли заяв­ле­ние о том, что сред­няя ошиб­ка состав­ля­ет 0% (100−100)÷2, будет пред­став­лять­ся нам истин­ным.
Но с дру­гой сто­ро­ны, если тупо счи­тать ошиб­ки по моду­лю, а про­грам­ма при этом ста­биль­но оши­ба­ет­ся то на +1%, то на ‑1%, ста­ти­сти­че­ски-то ведь она, мож­но ска­зать, что не оши­ба­ет­ся вовсе.
Как обыч­но дей­ству­ют, вдруг кто зна­ет?

Пну-ка я Линукс в очередной раз

Дав­но я не пинал эту подел­ку, пну опять.

Име­ем: сер­вер с уста­нов­лен­ной Убун­той 22.04 — самым рас­по­след­ним дис­три­бу­ти­вом LTS. Не ста­вить же в про­дакшн бета-вер­сии.

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

Хоро­шо — apt update && apt upgrade? А вот шЫш — 2.4.52 это самая рас­по­след­няя вер­сия в репо­зи­та­ри­ях Убун­ты 22.04:

И чего пред­ла­га­е­те делать? Как я в 1998 году делал, из сыр­цов соби­рать само­му? Что­бы потом полу­чить фиг зна­ет чего, что после апгрей­да биб­лио­те­ки, напри­мер, libc, грох­нет­ся про­сто с гаран­ти­ей? Нафиг такие идеи и пред­ло­же­ния, я насо­би­рал­ся из сыр­цов выше кры­ши ещё в про­шлом веке.

Мож­но доба­вить в репо­зи­та­рии чеха, и поста­вить отту­да. Но всё это абсо­лют­но без гаран­тий.

Что име­ем в сухом остат­ке? Оче­вид­ную иди­о­тию — по умол­ча­нию самая послед­няя вер­сия LTS рели­за ста­вит Апа­ча с дырой, и обно­вить её, если не делать пля­сок с буб­ном и заячьей лап­кой, не полу­чит­ся.

А потом линук­со­и­ды нам рас­ска­зы­ва­ют, какой Вин­до­уз дыря­вый, ну-ну.

В моём люби­мом FreeBSD, кста­ти, в пор­тах чело­ве­че­ская вер­сия.

Вот вам и Линукс про­тив BSD.

Вот это дыра

В БИО­Се прак­ти­че­ски всех суще­ству­ю­ших совре­мен­ных ком­пью­те­ров есть дыра по обра­бот­ке лого­ти­па, изоб­ра­жа­е­мо­го при вклю­че­нии ком­пью­те­ра. Его мож­но под­ме­нить, при­чём из ОС, на точ­но так же выгля­дя­щее изоб­ра­же­ние, но содер­жа­щее вре­до­нос­ный код. Этот вре­до­нос­ный код обыч­ный анти­ви­рус уда­лить не может — он не уме­ет писать в БИОС.

https://arstechnica.com/security/2023/12/just-about-every-windows-and-linux-device-vulnerable-to-new-logofail-firmware-attack/

Вот это кру­то, блин. Послед­ствия могут быть самые шикар­ные. Неуда­ля­е­мый мал­варь хоти­те?

Обал­деть, дав­но тако­го не было. Теперь при­це­пить такое к экс­плой­ту-чер­вя­ку и конец все­му живо­му.

Поколенческое про игры

Я заме­тил одну инте­рес­ную вещь про ком­пью­тер­ные игры и моло­дое поко­ле­ние — и чем они млад­ше, тем боль­ше это прав­да. Вот мне (поко­ле­ние Х), напри­мер, не очень инте­рес­но рас­смат­ри­вать, как кто-то игра­ет в игру. Нет, я ино­гда смот­рю, это вер­но — напри­мер, погля­деть на какое-то инте­рес­ное тво­ре­ние в Scrap Mechanic, или как прой­ти осо­бо злю­ще­го бос­са. Но в целом смот­реть на то, как игра­ют дру­гие мне в целом не ска­зать, что­бы силь­но завле­ка­тель­но — зна­чи­тель­но инте­рес­нее играть само­му.

А вот моло­дым, осо­бен­но поко­ле­нию аль­фа (2010+), прак­ти­че­ски рав­но­цен­но: что смот­реть на то, как игра­ют дру­гие, что играть самим. Они полу­ча­ют прак­ти­че­ски такое же удо­воль­ствие от обо­их видов раз­вле­че­ния. Сам я не силь­но пони­маю, как так, но с дру­гой сто­ро­ны, смот­рим же мы фут­бол, бейс­бол, хок­кей, и про­чий боб­слей — непо­сред­ствен­но в них не участ­вуя, но полу­чая удо­воль­ствие от про­смот­ра.

Нашёл в ентих ваших интор­не­тах инте­рес­ную кар­тин­ку, под­твер­жда­ю­щую мои наблю­де­ния.

Про работу в ентом ОйТи

Про­чи­тал инте­рес­ный раз­го­вор.

–А чем пло­ха рабо­та в IT сфе­ре?
–Момен­таль­ным уста­ре­ва­ни­ем. Вот смот­ри, я высо­ко­ква­ли­фи­ци­ро­ван­ный инже­нер-про­грам­мист. Десять лет назад наша ком­па­ния раз­ра­бо­та­ла один из широ­ко ныне при­ме­ня­е­мых про­грамм­ных паке­тов для поис­ка новых неф­тя­ных место­рож­де­ний. Мы одни­ми из пер­вых нача­ли исполь­зо­вать машин­ное обу­че­ние для реше­ния подоб­ных задач, изу­ча­ли про­бы, ланд­шафт, дела­ли пред­ска­за­ния. Про­грам­ма рабо­та­ла пре­вос­ход­но, мы с боль­шой пом­пой её пре­зен­то­ва­ли, удач­но про­да­ва­ли и зара­бо­та­ли кучу денег.
–Так ведь здо­ро­во!
–Ну да, толь­ко уже после полу­го­да с момен­та выхо­да мы нача­ли выпус­кать к ней обнов­ле­ния, пять лет назад серьёз­но пере­пи­са­ли, а теперь она уже мораль­но уста­ре­ла и её надо пере­де­лы­вать почти зано­во. Появи­лись обе­ща­ю­щие мно­гое ней­ро­се­ти, ана­лиз мест­но­сти теперь про­из­во­дит­ся с дро­нов, объ­ём дан­ных серьёз­но вырос, нам уже надо исполь­зо­вать гра­фи­че­ские уско­ри­те­ли для их обра­бот­ки, и по сути всю рабо­ту надо начи­нать чуть ли не с нуля. А два года назад мы с женой были в Евро­пе. И зна­ешь что я там уви­дел? Кар­ти­ны Рем­бранд­та. И тут мне при­шло в голо­ву — ё‑моё, этим кар­ти­нам почти четы­ре­ста лет, а они до сих пор пре­крас­ны, и будут радо­вать людей и даль­ше. А моё тво­ре­ние за десять лет уста­ре­ло и место ему теперь на помой­ке.

Ино­гда испы­ты­ваю схо­жие мыс­ли. Я в нача­ле жиз­ни в США ещё в 1990 годах рабо­тал на строй­ке, плот­ни­чал. Постро­ен­ный дом сто­ит до сих пор. А все IT про­ек­ты, в кото­рых я участ­во­вал, в тече­ние несколь­ких лет выхо­ди­ли в тираж. На этом самом острие надо нахо­дить­ся посто­ян­но, это осо­бен­но важ­но в облач­ных тех­но­ло­ги­ях, где всё за год может поме­нять­ся ради­каль­ней­ше. Смот­ришь на что-то, что исполь­зо­вал бук­валь­но меся­ца три назад, ан вишь оно уже deprecated и надо раз­би­рать­ся с чем-то новым; это, без­услов­но, инте­рес­но, но ино­гда подоб­ная недол­го­веч­ность силь­но ездит по моз­гам.

Музыкальный лайфхак

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

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

Зато зна­е­те, у кого есть абсо­лют­ный слух? У быст­рых пре­об­ра­зо­ва­ний Фурье! Поэто­му если мне надо подо­брать какую-то мело­дию, а у меня не полу­чит­ся, я про­сто беру при­ло­же­ние-хро­ма­ти­че­ский тюнер для теле­фо­на и тупо её теле­фо­ну напе­ваю, и он мне сра­зу гово­рит, напри­мер, тут у тебя «си-бемоль», а потом «до», и т.д. Очень удоб­но.

Компьютерное

Про­ап­грей­дил жёст­кий диск в ком­пью­те­ре. Был 1 «тера­байт», ста­ло 2. В кавыч­ках пото­му что про­из­во­ди­те­ли исполь­зу­ют аль­тер­на­тив­ную мате­ма­ти­ку — 1 тера­байт у них это 1000 гига­байт, а не 1024.

Тупо пере­ки­нул всё Акро­ни­сом, бла­го с твёр­до­те­ла на твёр­до­тел всё копи­ру­ет­ся момен­таль­но. Лет 10 назад я бы всё пере­ста­вил нахер с нуля, а щас настоль­ко лени­во всё это делать! Это что же, все про­грам­мы с нуля пере­уста­нав­ли­вать, все игры, все настрой­ки? Нафиг-нафиг.

А ещё я сде­лал одну вещь, кото­рую тоже не стал бы делать 10 лет назад. Купил игро­вой ноут­бук MSI. Это рань­ше я думал (оши­боч­но), что Ком­пью­те­ры долж­ны быть Боль­шие и Желез­ные, а теперь я ниче­го тако­го предо­су­ди­тель­но­го в ноут­бу­ках не вижу. Ноут­бук не силь­но выпенд­рёж­ный, но в нём сто­ит Нви­дия 2060, ничуть не мень­ше по мощ­но­сти, чем 1070 GTX, что сто­ит в ста­ци­о­нар­ном ком­пе. Игры идут заме­ча­тель­но. Да и всё осталь­ное тоже.

Май­к­ро­софт, нако­нец-то, блин, решил дав­но суще­ству­ю­щую про­бле­му: как полу­чить ком­пью­тер, кото­рый может одно­вре­мен­но играть в игры, и рабо­тать с соф­том под Линукс, кото­ро­му нуж­на CUDA, и что­бы без уста­нов­ки двух ОС в мно­го­за­гру­зоч­ной кон­фи­гу­ра­ции. Я уже дав­но исполь­зую WSL (Windows Subsystem for Linux). Это поз­во­ля­ет посто­ян­но иметь под рукой Линукс, на кото­ром мож­но раз­ра­ба­ты­вать софт, не отхо­дя от кас­сы. Не надо путать WSL с Cygwin — WSL это пол­но­цен­ный линукс, запус­ка­ю­щий линук­со­вые же бинар­ни­ки, а не пере­ком­пи­ли­ро­ван­ный в экзеш­ни­ки линук­со­вый софт. Ещё в нём удоб­но обме­ни­вать­ся фай­ла­ми с линук­со­вой под­си­сте­мой — ибо WSL созда­ёт скры­тую шару \\wsl$, из кото­рой ты име­ешь воз­мож­ность обра­щать­ся напря­мую к / в линук­со­вой вир­ту­ал­ке.

Так вот, выяс­ни­лось, что начи­ная с WSL вер­сии 2, ресур­сы гра­фи­че­ско­го про­цес­со­ра нор­маль­но про­ки­ды­ва­ют­ся к госте­вой ОС, так что там мож­но запус­кать TensorFlow, Caffe, и про­чие инте­рес­ные вещи без того, что­бы тор­мо­зить и всё выпол­нять на цен­траль­ном про­цес­со­ре. Так что впер­вые, блин, мож­но и на ёлку залезть и не оца­ра­пать­ся. Рань­ше подоб­ные зада­чи реша­лись уста­нов­кой Линук­са в каче­стве основ­ной ОС, и водру­же­ни­ем на него систе­мы вир­ту­а­ли­за­ции Xen, кото­рая запус­ка­ла маши­ну с Вин­до­уз, в кото­рой уже мож­но было запус­кать игры, ибо Xen уме­ет про­бра­сы­вать GPU до госте­вой ОС.

Конеч­но, есть неболь­шая поте­ря про­из­во­ди­тель­но­сти и в том, и в дру­гом слу­чае. Но поте­ря про­из­во­ди­тель­но­сти на 10% в играх — намно­го замет­нее, чем поте­ря про­из­во­ди­тель­но­сти на 10% при испол­не­нии TensorFlow. Так что как ни кру­ти, а всё же в этом отно­ше­нии Вин­до­уз луч­ше Линук­са.

Цены на видеокарты

В далё­ком 2017 году я купил себе видео­кар­ту Nvidia 1070 GTX. Запла­тил я за неё 410 дол­ла­ров.

Сего­дня смот­рю — херак, моя в точ­но­сти кар­та сто­ит 700 дол­ла­ров!!!

Это как, япо­на мать, изви­ня­юсь, пони­мать? Цены на ком­пью­тер­ную тех­ни­ку идут ВВЕРХ? Кар­точ­ка четы­рёх­лет­ней дав­но­сти даже б/у ста­ла сто­ить ДОРОЖЕ?

Или это от кови­до­бе­сия всё?

Про компьютерные игры

Я люб­лю ком­пью­тер­ные игры. Ком­пью­тер­ные игры, соб­ствен­но, для меня ста­ли пор­та­лом в рабо­ту в сфе­ре IT. Нача­лось всё с того, что мне захо­те­лось играть в Дум со зву­ком вме­сто мерз­ко­го пища­ния РС-спи­ке­ра. Зна­чит, при­шлось выяс­нять, как уста­нав­ли­вать зву­ко­вую кар­ту. Потом вышел Дум 2, и на послед­нем уровне, когда мон­стров и про­чих граж­дан ста­но­вит­ся очень мно­го, на 4 мега­бай­тах памя­ти оно рабо­та­ло, дико сво­пясь. Надо было, зна­чит, уве­ли­чить (я добил в резуль­та­те, до 12 мега­байт, доуста­но­вив план­ку памя­ти на 8 мег. 72-пино­вый СИММ сто­ил мне 105 монет, как щас пом­ню). Ну, и пошло-поеха­ло.

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

Самым боль­шим под­твер­жде­ни­ем обу­ча­ю­ще­го потен­ци­а­ла игр в лич­но моей жиз­ни было когда я взял пару заня­тий по управ­ле­нию само­лё­том. До это­го я весь­ма плот­но играл в Мик­ро­соф­тов­ский «Флайт Симу­ля­тор», так что когда я залез в каби­ну став­шей мне уже род­ной Сесс­ны-172, я без запин­ки рас­ска­зал инструк­то­ру, где какой при­бор, и что он пока­зы­ва­ет.

А теперь мне, воз­мож­но, пред­сто­ит выпол­нить зем­ля­ные рабо­ты с при­ме­не­ни­ем экс­ка­ва­то­ра. Его неслож­но взять в арен­ду, но надо знать, как им управ­лять. Экс­ка­ва­тор управ­ля­ет­ся дву­мя джой­сти­ка­ми, и уме­ние выко­пать обык­но­вен­ную яму при­хо­дит не сра­зу.

Не про­бле­ма! Хоти­те научить­ся управ­лять экс­ка­ва­то­ром? Для это­го тоже есть игра, так и назы­ва­ет­ся — DIG IT! — A Digger Simulator.

А два джой­сти­ка есть на баналь­ном кон­трол­ле­ре для коро­бок­са, кото­рый под­клю­ча­ет­ся через USB.

Один толь­ко тут есть потен­ци­аль­ный затык — есть два типа управ­ле­ния тяжё­лой тех­ни­кой: ISO (евро­пей­ский, наи­бо­лее широ­ко рас­про­стра­нён­ный в мире) и SAE (аме­ри­кан­ский, всё у нас не как у людей в оче­ред­ной раз). Игра напи­са­на нем­ца­ми, так что исполь­зу­ет, разу­ме­ет­ся, ISO. Раз­ни­ца, прав­да, неве­ли­ка — там, где аме­ри­кан­ский тип управ­ля­ет руко­я­тью, евро­пей­ский дви­га­ет стре­лу, и наобо­рот.

Лич­но мне более логич­ным кажет­ся ISO. Но выби­рать ино­гда не при­хо­дит­ся, хотя очень боль­шое коли­че­ство тех­ни­ки мож­но пере­клю­чить с ISO на SAE или наобо­рот. Где-то надо отце­пить и воткнуть по-дру­го­му гид­рав­ли­че­ские шлан­ги, где-то есть малень­кий пере­клю­ча­тель.

В‑общем, хоро­шее это дело — ком­пью­тер­ные игры. Раз­ви­ва­ют не толь­ко детей, но и взрос­лых дядек 🙂

Не кради там, где живёшь

Бело­рус­ско­го хаке­ра Сер­гея Яре­ца, извест­но­го под ником Ar3s, вла­дель­ца бот­не­та Andromeda, нанёс­ше­го ущер­ба при­мер­но на десять мил­ли­о­нов дол­ла­ров, выпу­сти­ли на сво­бо­ду после 6 меся­цев в КПЗ.

Поче­му? А пото­му, что код лоаде­ра дан­но­го бота про­ве­ря­ет, где нахо­дит­ся поль­зо­ва­тель. Софт был настро­ен так, что­бы не зара­жать ком­пью­те­ры, рас­по­ло­жен­ные на тер­ри­то­рии бСССР (видел уже не раз такое). Соот­вет­ствен­но, постра­дав­ших бело­ру­сов не было: с кем надо, Ярец, думаю, поде­лил­ся, а на аме­ри­кан­цев, нем­цев, и англи­чан и про­чих бело­рус­ско­му суду поло­жить боль­шой болт. Так что 6 меся­цев и неболь­шой штраф, и впе­рёд, к сле­ду­ю­щим высо­там.

https://www.bleepingcomputer.com/news/security/andromeda-botnet-operator-released-with-a-slap-on-the-wrist/