К сожалению есть одна неприятность, даже для устройств, где не нужно ультронизкое энергопотребление. Имя этой неприятности - x86. Дело в том, что самое наличие этой архитектуры в качестве доминирующей - замедляет прогресс. Кесарю кесарево, знаете?:) Так же и в программировании. Каждую задачу можно решать оптимально с помощью подходящего инструмента. Если в мобильниках - это просто необходимость, ибо энергобюджет, то на других устройствах критерием может быть производительность. Криптопроцессоры эффективнее програмной реализации, заточенные под работу с glsl параллельные процессоры, при условии программировании на glsl, также эффективнее, нежели помесь gpu+cpu+драйвер+прослойки. То же касается и декодирования видео и прочего. В идеале, програмная логика должна делиться и исполняться параллельно на специфических процессорах, тогда получаем простое повышение эффективности при той же цене решения, или ту же эффективность при меньшей цене решения. x86 архитектура долгое время шла по пути - пихай всё на проц и пускай он как-то с этой кашей сам разбирается. Пришло время, точнее приходит, всё это разгребать, драйвера учатся декодировать видео на gpu, появляются stream, cuda и тд. Шейдеры всё более универсальны. Движение идёт, но если x86 проиграет встраиваемые системы arm - движение ускорится. Тому есть одна причина - встраиваемые системы всегда обладают меньшей производительностью, хотя бы по причинам: бесшумности, холодности и желательно, низкой себестоимости. Отсюда вывод: у разработчиков не будет другово выхода, кроме как использовать спецпроцессоры, потому как cpu медленный. Есть кстати ещё одно важное обстоятельство - простота архитектуры. Чем проще, понятнее архитектура, тем легче разработка. Если в системе, грубо говоря: cpu, glsl-core, crypto-core, media-core, то мы получаем несколько маленьких по объёму драйверов, которые могут примитивными. А разработка будет идти с помощью допустим C++, glsl,crypto-lib,ffmpeg и тд. Названия взяты почти с потолка, так что прошу заранее не цепляться:) Но всё что хотел - это обратить внимание на чрезмерное усложнение архитектуры современных писюков и их младших братьев, без явных на то причин. Что сейчас представляет из себя видеокарта? Ужас, это же писюк, втыкающийся к pci-e, осталось сделать там разводку для sata:) Я уже молчу про сложность драйверов и про то, что типичная видеокарта просто не знает что такое состояние покоя, пожирая 40-50 ват, хорошенький покой О_о. Теперь по поводу единых deb, rpm и так далее. Думаю не буду оригинален, если скажу, что есть возможность генерировать кросплатформенный объектный код, и при разворачивании пакетов, по быстрому его превращять в нативный. Кроме этого, уменьшение процессорных инструкций упрощает разработку компиляторов и увеличивает трансляцию кроссплатформенного объектного кода в нативный. PS: кто-то ищет решения, а кто-то причины?:) ПИЭС: да, наболело:)
|