URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 114131
[ Назад ]

Исходное сообщение
"Проект по созданию открытого компилятора для Qualcomm Hexago..."

Отправлено opennews , 22-Апр-18 22:52 
Георг Готз (George Hotz), получивший известность разработкой способов обхода ограничений на установку дополнительного ПО на iPhone и Sony PlayStation 3, основал (https://github.com/geohot/openhexagon) проект по разработке открытого компилятора и инструментария для современных DSP Hexagon (https://en.wikipedia.org/wiki/Qualcomm_Hexagon), поставляемых в SoC  Snapdragon компании Qualcomm. Для старых моделей Hexagon V4 и V5 доступен (https://sourcery.mentor.com/GNUToolchain/release2800?@t... открытый инструментарий на базе GCC, но для новых серий Hexagon V60 поставляется только проприетарный Hexagon DSP SDK (https://developer.qualcomm.com/software/hexagon-dsp-sdk), основанный на LLVM (в LLVM 6.0 имеется (https://releases.llvm.org/6.0.0/docs/ReleaseNotes.html#chang... штатный бэкенд (https://github.com/llvm-mirror/llvm/blob/master/lib/Target/H... с поддержкой v60, v62 и v65).

URL: https://github.com/geohot/openhexagon
Новость: https://www.opennet.me/opennews/art.shtml?num=48476


Содержание

Сообщения в этом обсуждении
"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 22-Апр-18 22:52 
>основанный на LLVM

Пермиссивные лицензии просто замечательны.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено llvm , 23-Апр-18 00:23 
угу - поэтому у нас есть (open source, между прочим) кодогенератор для этих dsp, а вы тратьте свое время на reverse engineering того, что нафиг никому не упало.

(у нас нет opensource версии линкера и рантайма - lld такое не умеет, но мы вполне счастливы не получать ненужных знаний и не поддерживать еще и в нем такую возможность, у нас есть чем заняться)


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 09:48 
> у нас есть чем заняться

типа комменты на опеннете строчить?


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 24-Апр-18 02:59 
>  угу - поэтому у нас есть (open source, между прочим) кодогенератор для этих dsp

А в новости кое-что другое утверждается.

> только проприетарный Hexagon DSP SDK, основанный на LLVM

Собственно причина по которой LLVM тулчейнов следует избегать - никогда не знаешь когда тебя кинут.

> (у нас нет opensource версии линкера и рантайма

Мозгов у фанов BSDL нет - нахваливают всяких имельцев.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 25-Апр-18 10:55 
чукча не читатель?

>в LLVM 6.0 имеется штатный бэкенд генерации кода с поддержкой v60, v62 и v65, но отсутствует runtime и компоновщик


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено llvm , 26-Апр-18 15:21 
тот чукча читатель, но непониматель - ни что такое "SDK", ни что этот самый бэкэнд он и использует, вместе со всем остальным llvm.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 09:42 
Забыл тег сарказм.

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 13:11 
А вот у благородных англичан по дефолту включен этот тег!

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Сергей , 22-Апр-18 23:40 
Что это за процессор, зачем он нужен, какая архитектура, первый раз о нем слышу, и мало что понятно, можно, пожалуйста, подробностей?

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 00:56 
VLIW процессор, старые версии не поддерживали (но это не точно) целочисленные вычисления. В современных системах Qualcomm два таких процессора. На одном из них работает код модема. Другой предназначен для приложений. Обычно, правда, неподписанные приложения он не выполняет.

Самое известное приложение - Google Camera, в которой алгоритмы (склейка панорам, HDR) реализованы для этого процессора. На телефонах, где этот сопроцессор доступен (старшая серия Snapdragon), Google Camera поддерживает режим HDR+, когда одна картинка делается из восьми фото, в итоге без засветов на ярком солнце, и хорошо работает на контрастных сценах ночью. На остальных обычно используется от четырёх до шести кадров, и надо ждать несколько секунд, пока обработается.

Зачем он нужен - интересный вопрос. У Qualcomm очень быстрый GPU, и если выкинуть DSP и поставить туда дополнительный L2 кэш - можно и на CPU получить достаточную производительность для обработки картинок. Вероятно, развивают по принципу "ну раз уж сделали - не выкидывать же теперь".

Подробности, в принципе, на официальном сайте доступны.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 02:13 
> Обычно, правда, неподписанные приложения он не выполняет.

Анон, брат, уточни немного как здесь устроено. Или кинь ссылкой где почитать.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 04:08 
https://www.qualcomm.com/news/onq/2017/01/17/secure-boot-and...

В теории - код в TrustZone проверяет подпись программы для DSP. По хорошему, он должен сначала замапить эту память, как недоступную для изменения со стороны Linux Kernel, чтобы после проверки подписи нельзя было подменить её.

Патч от GeoHot патчит кое-что, не связанное с этим - в программе-загрузчике для DSP убирает проверку на тестовый режим, что отключает дальнейшую проверку подписей. А вот почему это вообще возможно - непонятно. Сама программа-загрузчик должна быть подписана, и подпись не совпадёт после патча. Скорее всего, на устройстве, которое он использовал (OnePlus что-то?) проверка подписей отключена в принципе. Или ой.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 24-Апр-18 03:02 
> В теории - код в TrustZone проверяет подпись программы для DSP. По
> хорошему, он должен сначала замапить эту память, как недоступную для изменения
> со стороны Linux Kernel,

А что квалкому мешает просто проверять подпись kernel и грузить только kernel которые ведут себя правильно? Это слишком просто и логично было?

Впрочем, снос цифровых загородок от квалкома это вообще фича а не баг.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено inferrna , 23-Апр-18 08:26 
Писать конпелятор для мультимедиа сопроцессора, который суть есть числодробилка  - зачем? NetBSD на нём запускать? Лучше бы нашёлся кто бы под него (да и не тольк под него) открытый hdr алгоритм написал уровня gcam.

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено пох , 23-Апр-18 08:55 
ты не поверишь - на нем (на старых версиях) можно (было, по крайней мере) запустить линукс (ведро, во всяком случае).
(зачем - а хз. "патамушта магу!")

собственно, основная польза от компилятора в том, что прежде чем переваривать какие-то числа - надо банально суметь прочитать данные и потом их куда-то записать. А для этого нужна какая-никакая примитивная однозадачная операционная система. С поддержкой fs/взаимодействия с внешим миром хотя бы через serial, и т д. Писать ее на асме для dsp - так себе времяпровождение. Поэтому на ассемблерной вставке будет написан только собственно какой-нибудь бпф и то, вероятно, не весь.

> кто бы под него (да и не тольк под него) открытый hdr алгоритм написал уровня gcam.

пиши, кто тебе не дает?


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено inferrna , 23-Апр-18 10:08 
> нужна какая-никакая примитивная однозадачная операционная система

из педивикии:
> Both Hexagon (QDSP6) and pre-Hexagon (QDSP5) cores are used in modern Qualcomm SoCs

там, на этих SoCs, ажно целый многозадачный ведроид запускается, зачем что-то ещё городить? Есть закрытый конпелятор для некой архитектуры, которая, не факт, что не устареет через год-два - нафига тратить время на реверсинг конпелятора под неё? Я ещё понимаю, писать реализацию OpenCL для r600 - всё-таки она крутится у юзеров прямо в рантайме. Но этот-то - нужен только девелоперам: раз сконпелировал и забыл, работать будет у всех. Единственный смысл - если старые версии проприетарного конпелятора не поддерживают новые ведроиды, а новый не поддерживает старое железо, а очень хочется новое на старом - и то теряется после выхода Oreo.
> пиши, кто тебе не дает?

Занят. А тут, судя по новости, кому-то заняться явно не чем.


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено пох , 24-Апр-18 14:57 
> там, на этих SoCs, ажно целый многозадачный ведроид запускается, зачем что-то ещё городить?

срочно высылай cv в квалком - возможно, им нужен ты, в качестве эффективного менеджера, который лучше них знает, что городить.
А так - в некоторых soc их аж три. (правда, только один доступен извне)

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


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 09:52 
>Писать конпелятор для мультимедиа сопроцессора, который суть есть числодробилка  - зачем?
>Лучше бы нашёлся кто бы под него (да и не тольк под него) открытый hdr алгоритм написал

Чудак-человек, ну а этот самый открытый HDR как без конпелятора компелировать?


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено inferrna , 23-Апр-18 09:54 
Закрытым конпелятором, который вполне себе доступен для скачивания.

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 09:57 
Нафига тогда тебе открытый алгоритм HDR, если привык блобъём пользоваться?

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено inferrna , 23-Апр-18 10:12 
> Нафига тогда тебе открытый алгоритм HDR, если привык блобъём пользоваться?

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


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 25-Апр-18 04:16 
> Алгоритм - вещь универсальная, конпелятор - утилитарная.

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


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 12:56 
нафига тебе компьютер - если ты привык блобъем в биосе пользоваться :)

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 13:14 
Нафига тебе девка, если ты к мамкиной сиське привык

(Ставить "тире" вместо запятой - это ж каким надмозгом надо быть!)


"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 16:01 
Я в Биосе не работаю, не сподручно как-то. Предпочитаю в GNU/Linux + прикладное СПО

"Проект по созданию открытого компилятора для Qualcomm Hexago..."
Отправлено Аноним , 23-Апр-18 14:09 
Работает, но под каждый смартфон патч нужно менять (везде код разных версий), и работает только из командной строки - непонятно как сделать хук ioctl() из libc без LD_PRELOAD.