По первым абзацам примерно понимаю к чему все это клонит. Предлагаю от слов перейти к делу, вот здесь https://git.kolibrios.org/ лежат исходники ОС аля Win98 от российских разработчиков. Поскольку авторы не шибко думали о будущем и перспективах, данная ОС прибита гвоздями к i386 ассемблеру и не может быть портирована ни на мипс/риск-5 ни на эльбрус. На каком то форуме разработчик божился что перепишет таки код на си но видимо былого задора уже нет. Предлагаю ему/им помочь и воплотить задуманное в жизнь. Пока ты сам не возьмешь и не сделаешь, никто не сделает. Хоть весь интернет ахренительными идеями испиши.
Насколько я помню AMD продал китайцам ядра Zen первого поколения. Похоже что китайцы написали свой микрокод, перелопатили подсистему памяти, ну и разработали интерконнект.
Но особенно на это намекает десктопная версия: LS3A6000: 2.0–2.5GHz, 4/8 cores/threads, 16MB L3, 2xDDR4-3200, HyperTransport 3.0 (64-bit superscalar LA664 cores; supporting LoongArch instruction set architecture; supporting 128/256-bit vector instructions; 6-issue out-of-order execution; 4 fixed-point units, 4 vector units, and 4 memory access units )
Реально отличия только в немного измененной подсистеме памяти.
ОТО базируется на математических уравнениях, которые какие-то эффекты и поведение на больших объектах и больших расстояниях предсказывают с очень даже отличной точностью. Это так, но это не дает оснований приносить геометрического гомункула (ака пространство-время) в область естественно-научных знаний и пытаться его там прописать. Природа у всех этих явлений иная (квантовая) и она не обязана соответствовать чьим-либо ожиданиям, а предсказать свойства атомов на зная их состав и марку тот же Менделеев умудрился. И что теперь, бегать теорию эфира пропагандировать что-ли.
Проблема в том что ученые разные, например тот же Сурдин в одном из первых эфиров с Семихатовым вообще удивился узнав что ОТО оказывается чисто математическая модель и с современной физикой не состыкуется. Пусть он и астроном и ему это знать по большому счету не нужно, но тем не менее это показывает что картины мира у ученых разные. Астрофизики которые были у дройдера на эфире один за другим вещали про не квантовую природу гравитации, и данная статья тоже показывает что есть пласт ученых которые будут отстаивать ОТО как теорию до конца.
В калифорнии уже детектор гравитонов сооружают, если все подтвердится, про ОТО как теорию можно будет говорить только в холеварах на форумах, нобелевки за её отстаивание уже не дадут. А ролики где дяди на батуте шарики запускают, придется переносить в категорию #юмор.
Перечитал на проспавшуюся голову, да вы правы "какой наш следующий шаг?" имелось в виду его и разработчиков из МЦСТ. А вот маинтейнер ответил по сути что МЦСТ в этом участвовать нельзя. Короче надо просто исключить упоминания этой и других подсанкционных компаний из разговоров и кода. Ну и россии наверное тоже, таковы современные реалии.
Тоже особо не понял по поводу чего визги. Как я понял из скриншота, некий энтузиаст (не из МЦСТ) написал кому то из маинтейнеров что мол вот там у них в репозитории лежит код, давайте его заапстримим, я мол готов тащить в одно лицо, с чего начнем? Ну и скучающий седой вахтер ему посоветовал начать с поиска опытных людей в команду, а так же с выяснения юридических вопросов можно ли вообще брать тот код и просто так заливать в апстрим. По большому счету отмахнулся да, но мне тоже показалась что энтузиаст не совсем понимает что это не тот проект где добавил пару правил и вот тебе поддержка, нужен кто то кто будет сопровождать архитектуру (тем более такую) постоянно, в идеале это должен быть штатный разработчик из МЦСТ, а не вася седня есть, завтра нету и мне пофиг
Спектр доступного интернета с течением времени будет только сужаться, инструменты обхода блокировок рано или поздно тоже перестанут работать. За попытку обхода блокировок будут штрафовать, за мыслепреступления поиском информации - привлекать.
Слишком много эмоций, надо быть объективнее. Чем сильней правительства разных стран будут ограничивать интернет, тем активней он будет развиваться в сторону более защищенных от внешнего вмешательства протоколов. Запретить прогресс в сфере интернет-безопасности будет равносильно запрету интернета вообще, поэтому как раз штрафы за какую нибудь взлом/разблокировку роутера с зашитым белым списком и станут последней крайней мерой ограничения.
Да, это мы. Р7-Офис - наш отдельный проект для России. ONLYOFFICE участвовать в импортозамещении не будет.
У десктопов ONLYOFFICE - лицензия AGPLv3, у Р7 - коммерческая, там будет принципиально другая бизнес-модель. Платными будут десктопы, а серверы для совместного редактирования мы будем раздавать к ним «условно бесплатно».
Регистры это не абстрактные переменные, а физические операнды устройств. В данном случае разговор идет про бранч-юнит и его специальные управляющие регистры, через которые он переключает бранчи, передает управление в вызываемые или возвращаемые процедуры.
В эльбрусе 4 параллельных пайплайна В одном исполняется наш основной код, а регистры %ctpr1-3 содержат косвенный адрес трех дополнительных. Поэтому когда ты запускаешь return%ctpr3 ты приказываешь бранч-юниту "готовить" возврат в пайплайн на который указывает регистр переданный в виде аргумента. То есть инструкции возвращаемой процедуры будут параллельно загружаться и проходить через первые стадии пока у нас что-то считается в основном пайплайне. На стадии запуска непосредственно команд, подготавливаемый возврат разумеется встанет и будет ждать пока основной конвеер не прикажет передать на него управление командой ct%ctpr3
Значит наверное так и есть, компилятор видит что данные можно пустить в обход кэша и даже не пытается подгружать что-то из массива заранее. А то просадки как-то с кэшами вообще не бъются
сбоку прикручивают SIMD-расширения, чтобы предсказуемо дробить числа - и где разница?
Здесь разницы нет, вы правы. Тот же самый ручной параллелизм на уровне операций как он есть. Тем не менее своеобразное преимущество широкой команды в том что в нее можно внедрять что угодно и реализовывать в процессоре какие то интересные механизмы управляемые программно. В обычном потоке команд как у ARM ничего особо не сделать, можно только изобретать специальные команды раздувая ISA но и как бы все. Показательна история с предикатами в armv7 - каждая команда работающая с ними занимает целую в потоке и руинит вообще смысл этих предикатов, в итоге в aarch64 просто сделали условные команды с внутренними флагами как в интеле.
Не надо смешивать понятия "архитектура", "VLIW" и "процессор". Как "процессоры" эльбрусы именно что общезадачные и по компоновке и наполнению похожи на процессоры интел поколения Санди бридж. Архитектура ядер в процессорах эльбрус, да, vliw-like но не такая простая как в dsp, а с навешенными на нее динамическими хреновинами типа как в итаниуме. Но самое главное отличие в подсистеме памяти - в процессоре общего назначения кэши и MMU, тогда как у DSP просто набортная память без контроллеров и интерфейсов, поэтому так вот просто сравнить кто быстрей будет некорректно.
почему после return есть еще вычитание и сложение?
потому что return, после его исполнения, происходит в %ctpr3, тогда как текущий код исполняется в %ctpr0. То есть на эльбрусе в дополнении к основному конвееру дается три дополнительных %ctpr1-3 в которые можно загружать бранчи, вызовы функций, итд что бы на них быстро переключиться. Короче выход запускается асинхронно как корутина, а командой ct%ctpr3 совершается непосредственный await и переход.
До сих пор это был единственный способ вызова и возврата из процедур, в новой системе команд все таки добавили классический icallfn_name iret Из за того что в коде довольно част о происходят подобные ситуации, и асинхронная система становится избыточна: { disp fn_name, %ctpr1 } { call%ctpr1 } { return%ctpr3 } { ct%ctpr3 } мало того что просирает такты, еще и забивает кэш инструкций
Первая качественная статья по эльбрусу. Начинается с самой базовой базы - с подкачки данных в цикле, а потом уже поднимает вопрос об уплотнении комманд. Причем очень наглядно видно что векторизация позволяет выжимать максимум, но код при этом будет уродливый и архитектурно зависимый. В большинстве случаев подкачка массива и легкая раскрутка из первой половины статьи дают хороший результат и углубляться в симды на vliw-е необязательно.
По поводу кэшей, везде на лекциях по эльбрусу рассказывали что APB может прокачивать данные минуя кэш, можно ли этим как то управлять нигде не уточняется. Думаю если перед входом в цикл не делать предварительных загрузок элементов массива на регистры (через обычный лоад), а просто взвеcти APB подождать и прыгнуть в цикл, то произойдет та самая подкачка данных минуя кэш.
По поводу написание на ассемблере, аллокацию регистров вы врядли вывезете, лучше все таки писать на ассемблернизированном Си используя беззнаковые типы для переменных и заменив сишные операции на вызов макросов вставляющих ассемблерные операции. Компилятору выставить только -O1 чтоб он ничем кроме аллокации регистров и упаковки ШК не заморачивался. Сама МЦСТ похоже применяет именно такой способ написания на ассемблере (если судить по заголовочным файлам типа e2kintrin.h)
Двухъядерные эльбрусы судя по всему продолжают негласно поставлять, тогда как серверные похоже запрещены к поставке на любой архитектуре. Даже китайцы посикивают, и тот самый лунгсон с шильдиком, который недавно презентовали, оказался чисто десктопным процессором.
Риск5 это просто система команд, которая освобождена от роялтей. И Всё. Это не волшебное заклинание, произнеся которое прилетит фея с vhdl высокопроизводительного ядра в руках. А даже если бы и прилетала от одного ядра толку мало, без обвязки контроллеров это бумажный тигр.
У продавцов электроники на складах полно старых интелов и AMD, под которых просто уже не найти материнских плат, той же МЦСТ стоило бы лучше выделить финансирование на то что бы адаптировать свои контроллеры, материнские платы и ПО под них. Это было бы более полезно чем очередной процессор о котором никто не просил.
По первым абзацам примерно понимаю к чему все это клонит.
Предлагаю от слов перейти к делу, вот здесь https://git.kolibrios.org/ лежат исходники ОС аля Win98 от российских разработчиков. Поскольку авторы не шибко думали о будущем и перспективах, данная ОС прибита гвоздями к i386 ассемблеру и не может быть портирована ни на мипс/риск-5 ни на эльбрус. На каком то форуме разработчик божился что перепишет таки код на си но видимо былого задора уже нет. Предлагаю ему/им помочь и воплотить задуманное в жизнь. Пока ты сам не возьмешь и не сделаешь, никто не сделает. Хоть весь интернет ахренительными идеями испиши.
Эльбрус-2 это машина с 10ю процессорами, Cray-2 тоже не процессор.
Что тут с чем сравнивается непонятно, впрочем статью писал чатжпт походу
Этот лунгсон-иртыш очень похож на AMD EPYC первых итераций:
LS3C6000 SpecificationCores : 16(S) 32(D) 64(Q)
Threads : 32(S) 64(D) 128(Q)
Frequency : 844.8GFlops@2.2GHz (S)
1612.8GFlops@2.1GHz (D)
3072.0GFlops@2.0GHz (Q)
L1 Cache : 64KB (instructions) + 64KB (data)
L2 Cache : 256KB (privarate) ~ 4MB(S) 8MB(D) 16MB(Q)
L3 Cache : 32MB (shared)
Memory : 4×72-bit DDR4-3200 controller(S),
8×72-bit DDR4-3200 controller(D/Q)
PCIe : 64 lanes total(S)
128 lanes total(D/Q)
Power : 100W-120W (S)
180W-200W (D)
250W-300W (Q)
Насколько я помню AMD продал китайцам ядра Zen первого поколения.
Похоже что китайцы написали свой микрокод, перелопатили подсистему памяти, ну и разработали интерконнект.
Но особенно на это намекает десктопная версия:
LS3A6000: 2.0–2.5GHz, 4/8 cores/threads, 16MB L3, 2xDDR4-3200, HyperTransport 3.0(64-bit superscalar LA664 cores; supporting LoongArch instruction set architecture; supporting 128/256-bit vector instructions; 6-issue out-of-order execution; 4 fixed-point units, 4 vector units, and 4 memory access units )
Реально отличия только в немного измененной подсистеме памяти.
ОТО базируется на математических уравнениях, которые какие-то эффекты и поведение на больших объектах и больших расстояниях предсказывают с очень даже отличной точностью. Это так, но это не дает оснований приносить геометрического гомункула (ака пространство-время) в область естественно-научных знаний и пытаться его там прописать. Природа у всех этих явлений иная (квантовая) и она не обязана соответствовать чьим-либо ожиданиям, а предсказать свойства атомов на зная их состав и марку тот же Менделеев умудрился. И что теперь, бегать теорию эфира пропагандировать что-ли.
Проблема в том что ученые разные, например тот же Сурдин в одном из первых эфиров с Семихатовым вообще удивился узнав что ОТО оказывается чисто математическая модель и с современной физикой не состыкуется. Пусть он и астроном и ему это знать по большому счету не нужно, но тем не менее это показывает что картины мира у ученых разные.
Астрофизики которые были у дройдера на эфире один за другим вещали про не квантовую природу гравитации, и данная статья тоже показывает что есть пласт ученых которые будут отстаивать ОТО как теорию до конца.
В калифорнии уже детектор гравитонов сооружают, если все подтвердится, про ОТО как теорию можно будет говорить только в холеварах на форумах, нобелевки за её отстаивание уже не дадут. А ролики где дяди на батуте шарики запускают, придется переносить в категорию #юмор.
Перечитал на проспавшуюся голову, да вы правы "какой наш следующий шаг?" имелось в виду его и разработчиков из МЦСТ. А вот маинтейнер ответил по сути что МЦСТ в этом участвовать нельзя. Короче надо просто исключить упоминания этой и других подсанкционных компаний из разговоров и кода. Ну и россии наверное тоже, таковы современные реалии.
Тоже особо не понял по поводу чего визги.
Как я понял из скриншота, некий энтузиаст (не из МЦСТ) написал кому то из маинтейнеров что мол вот там у них в репозитории лежит код, давайте его заапстримим, я мол готов тащить в одно лицо, с чего начнем?
Ну и скучающий седой вахтер ему посоветовал начать с поиска опытных людей в команду, а так же с выяснения юридических вопросов можно ли вообще брать тот код и просто так заливать в апстрим. По большому счету отмахнулся да, но мне тоже показалась что энтузиаст не совсем понимает что это не тот проект где добавил пару правил и вот тебе поддержка, нужен кто то кто будет сопровождать архитектуру (тем более такую) постоянно, в идеале это должен быть штатный разработчик из МЦСТ, а не вася седня есть, завтра нету и мне пофиг
Слишком много эмоций, надо быть объективнее. Чем сильней правительства разных стран будут ограничивать интернет, тем активней он будет развиваться в сторону более защищенных от внешнего вмешательства протоколов. Запретить прогресс в сфере интернет-безопасности будет равносильно запрету интернета вообще, поэтому как раз штрафы за какую нибудь взлом/разблокировку роутера с зашитым белым списком и станут последней крайней мерой ограничения.
Есть комментарии их пиар-отдела на ЛОРе
Регистры это не абстрактные переменные, а физические операнды устройств. В данном случае разговор идет про бранч-юнит и его специальные управляющие регистры, через которые он переключает бранчи, передает управление в вызываемые или возвращаемые процедуры.
В эльбрусе 4 параллельных пайплайна
В одном исполняется наш основной код, а регистры
%ctpr1-3содержат косвенный адрес трех дополнительных. Поэтому когда ты запускаешьreturn%ctpr3ты приказываешь бранч-юниту "готовить" возврат в пайплайн на который указывает регистр переданный в виде аргумента. То есть инструкции возвращаемой процедуры будут параллельно загружаться и проходить через первые стадии пока у нас что-то считается в основном пайплайне. На стадии запуска непосредственно команд, подготавливаемый возврат разумеется встанет и будет ждать пока основной конвеер не прикажет передать на него управление командойct%ctpr3Как то так.
Роса это бывшая Russian Mandriva
Астра это сворованные патчи и DE из МСВС прикрученные к дебиану.
Значит наверное так и есть, компилятор видит что данные можно пустить в обход кэша и даже не пытается подгружать что-то из массива заранее. А то просадки как-то с кэшами вообще не бъются
Здесь разницы нет, вы правы. Тот же самый ручной параллелизм на уровне операций как он есть.
Тем не менее своеобразное преимущество широкой команды в том что в нее можно внедрять что угодно и реализовывать в процессоре какие то интересные механизмы управляемые программно. В обычном потоке команд как у ARM ничего особо не сделать, можно только изобретать специальные команды раздувая ISA но и как бы все. Показательна история с предикатами в armv7 - каждая команда работающая с ними занимает целую в потоке и руинит вообще смысл этих предикатов, в итоге в aarch64 просто сделали условные команды с внутренними флагами как в интеле.
Не надо смешивать понятия "архитектура", "VLIW" и "процессор".
Как "процессоры" эльбрусы именно что общезадачные и по компоновке и наполнению похожи на процессоры интел поколения Санди бридж.
Архитектура ядер в процессорах эльбрус, да, vliw-like но не такая простая как в dsp, а с навешенными на нее динамическими хреновинами типа как в итаниуме. Но самое главное отличие в подсистеме памяти - в процессоре общего назначения кэши и MMU, тогда как у DSP просто набортная память без контроллеров и интерфейсов, поэтому так вот просто сравнить кто быстрей будет некорректно.
потому что return, после его исполнения, происходит в %ctpr3, тогда как текущий код исполняется в %ctpr0. То есть на эльбрусе в дополнении к основному конвееру дается три дополнительных %ctpr1-3 в которые можно загружать бранчи, вызовы функций, итд что бы на них быстро переключиться. Короче выход запускается асинхронно как корутина, а командой ct %ctpr3 совершается непосредственный await и переход.
До сих пор это был единственный способ вызова и возврата из процедур, в новой системе команд все таки добавили классический
icallfn_nameiretИз за того что в коде довольно част о происходят подобные ситуации, и асинхронная система становится избыточна:
{dispfn_name,%ctpr1 }{
call%ctpr1 }{
return%ctpr3 }{
ct%ctpr3 }мало того что просирает такты, еще и забивает кэш инструкций
Первая качественная статья по эльбрусу. Начинается с самой базовой базы - с подкачки данных в цикле, а потом уже поднимает вопрос об уплотнении комманд. Причем очень наглядно видно что векторизация позволяет выжимать максимум, но код при этом будет уродливый и архитектурно зависимый. В большинстве случаев подкачка массива и легкая раскрутка из первой половины статьи дают хороший результат и углубляться в симды на vliw-е необязательно.
По поводу кэшей, везде на лекциях по эльбрусу рассказывали что APB может прокачивать данные минуя кэш, можно ли этим как то управлять нигде не уточняется. Думаю если перед входом в цикл не делать предварительных загрузок элементов массива на регистры (через обычный лоад), а просто взвеcти APB подождать и прыгнуть в цикл, то произойдет та самая подкачка данных минуя кэш.
По поводу написание на ассемблере, аллокацию регистров вы врядли вывезете, лучше все таки писать на ассемблернизированном Си используя беззнаковые типы для переменных и заменив сишные операции на вызов макросов вставляющих ассемблерные операции. Компилятору выставить только -O1 чтоб он ничем кроме аллокации регистров и упаковки ШК не заморачивался.
Сама МЦСТ похоже применяет именно такой способ написания на ассемблере (если судить по заголовочным файлам типа e2kintrin.h)
А в каком году купили? До покупки аэродиска аквариусом или после?
Двухъядерные эльбрусы судя по всему продолжают негласно поставлять, тогда как серверные похоже запрещены к поставке на любой архитектуре. Даже китайцы посикивают, и тот самый лунгсон с шильдиком, который недавно презентовали, оказался чисто десктопным процессором.
Риск5 это просто система команд, которая освобождена от роялтей.
И Всё. Это не волшебное заклинание, произнеся которое прилетит фея с vhdl высокопроизводительного ядра в руках. А даже если бы и прилетала от одного ядра толку мало, без обвязки контроллеров это бумажный тигр.
У продавцов электроники на складах полно старых интелов и AMD, под которых просто уже не найти материнских плат, той же МЦСТ стоило бы лучше выделить финансирование на то что бы адаптировать свои контроллеры, материнские платы и ПО под них. Это было бы более полезно чем очередной процессор о котором никто не просил.