The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Google представил Си-библиотеку для определения возможностей..., opennews (ok), 07-Фев-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


44. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от Аноним (-), 08-Фев-18, 09:59 
оно не для переносимости бинарников на разных семействах, а внутри одного. например amd64. так что бы без пересборки бинарника можно было заюзать как все новейшие плюшки sse9999, так и на атлоне 10-летней давности запустить.
Ответить | Правка | Наверх | Cообщить модератору

52. "Google представил Си-библиотеку для определения возможностей..."  –1 +/
Сообщение от iZEN (ok), 08-Фев-18, 10:42 
> так что бы без пересборки бинарника можно было заюзать как все новейшие плюшки sse9999

Так все новейшие плюшки, так и общий код в бинарнике включаются ещё на этапе компиляции компилятором опциями компиляции исходного текста на C/C++. Зачем ещё что-то довыяснять на этапе выполнения специальным кодом, если компилятор сам уже ДОБАВИЛ эту возможность в бинарик? Используйте современные версии компиляторов, чтобы не нужно было определять фичи CPU, на котором выполняется код.

Ответить | Правка | Наверх | Cообщить модератору

56. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от Аноним (-), 08-Фев-18, 11:12 
Тогда этот бинарник перестанет запускаться на древнем Атлоне.  А с помощью библиотеки можно сделать, чтобы работал везде и использовал максиму фич имеющегося процессора.
Ответить | Правка | Наверх | Cообщить модератору

62. "Google представил Си-библиотеку для определения возможностей..."  –2 +/
Сообщение от iZEN (ok), 08-Фев-18, 12:16 
В любом случае вы не сможете запустить бинарник для [amd64] на [i386] без добавления 32-битного кода, дублирующего основной. А вот код для [i386] вполне можно запустить на [amd64] при условии присутствия поддержки выполнеия этого кода. И довыяснять в нём о том, что он на самом деле запускается в 64-битном окружении, не имеет смысла без соответствующей возможности генерации 64-битных частей и передачи им управления.

Хорошо, запустили 32-битный код для древнего Athlo'а XP на 64-битном Athlon X2 и узнали об этом во время выполнения. Ваши дальнейшие действия? Что дальше?

Ответить | Правка | Наверх | Cообщить модератору

70. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от КО (?), 08-Фев-18, 13:07 
> Ваши дальнейшие действия? Что дальше?

Ты начни с начала.
Есть у тебя программа пускач и плюгины к ней.
Плюгин №1 считает на чистом FPU, два на SSE, три на AVX-512.
Задача пускача узнать какой загружать. Надо все их проверить на пригодность здесь и сейчас.

Ну или ты пишешь jit компилятор для своего скриптового языка.

И т.д. и т.п.

Ответить | Правка | Наверх | Cообщить модератору

76. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от iZEN (ok), 08-Фев-18, 13:24 
> Задача пускача узнать какой загружать. Надо все их проверить на пригодность здесь и сейчас.

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

Ответить | Правка | Наверх | Cообщить модератору

79. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от Аноним (-), 08-Фев-18, 13:33 
> Это задача компилятора - вставить в результирующий бинарный код, оптимизирующие инструкции
> из расширенного набора. Если они поддерживаются процессором, использовать их, в противном
> случае будет задействован код, работающий с базовым набором регистров.

Обычно компилятор не способен оптимизировать код лучше, чем (грамотный) разработчик. Поэтому в критичных местах векторный код пишут руками.

Ответить | Правка | Наверх | Cообщить модератору

82. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от iZEN (ok), 08-Фев-18, 14:41 
Современные компиляторы способны выдавать лучше оптимизированный код, чем средний разработчик.
Ответить | Правка | Наверх | Cообщить модератору

107. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от КО (?), 09-Фев-18, 15:13 
>Это задача компилятора - вставить в результирующий бинарный код, оптимизирующие инструкции из расширенного набора

Проверять перед каждой инструкцией есть или нет в рантайме убивать идею (овчинка выделки будет не стоить).
Один раз проверил и перешел на тот вариант кода который оптимален для платформы. Компилятор должен подготавливать эти варианты.

Ну и Вы пропустили задачу с собственным JIT компилятором - ему то надо знать, что можно, а что нельзя делать.

Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

77. "Google представил Си-библиотеку для определения возможностей..."  +/
Сообщение от Аноним (-), 08-Фев-18, 13:26 
> Так все новейшие плюшки, так и общий код в бинарнике включаются ещё
> на этапе компиляции компилятором опциями компиляции исходного текста на C/C++. Зачем
> ещё что-то довыяснять на этапе выполнения специальным кодом, если компилятор сам
> уже ДОБАВИЛ эту возможность в бинарик? Используйте современные версии компиляторов, чтобы
> не нужно было определять фичи CPU, на котором выполняется код.

Компилятор, в общем случае, сам ничего не добавляет. Если ты в коде явно заюзал, скажем, AVX, то никто за тебя не будет проверять, есть ли в CPU этот самый AVX. И если его нет, то твоя программа тупо навернется.

Некоторые новые компиляторы предоставляют средства, чтобы проверить наличие фич CPU в runtime. Но это непортируемо и не везде поддерживается. Так что либо надо использовать библиотеки вроде сабжа, либо писать что-то своё.

Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру