Всем доброго времени суток. Я студент 4-го курса бакалавриата МФТИ. В рамках курса по защите информации я написал эссе на тему гомоморфного шифрования и решил, поделиться им здесь, поскольку эта тема не так часто обсуждается на Хабре. Кроме того, я делаю это, надеясь дать окружающим пищу для размышлений и самому узнать что-то новое по данной теме.
Рубрика «аппаратное ускорение»
Гомоморфное шифрование: классификация шифров и аппаратные ускорители
2025-10-05 в 7:17, admin, рубрики: аппаратное ускорение, гомоморфизм, Облачные вычисления, шифрованиеОбзор исходного кода Quake 2
2017-05-12 в 22:04, admin, рубрики: bsp, OpenGL, software rendering, аппаратное ускорение, программный рендеринг, разработка игр, реверс-инжиниринг, метки: quake 2
Около месяца свободного времени я уделил чтению исходного кода Quake II. Это был удивительный и поучительный опыт, потому что в движок idTech3 внесено большое изменение: Quake 1, Quake World и QuakeGL объединены в одну красивую архитектуру кода. Особенно был интересен способ, которым достигли модульности, несмотря на то, что язык программирования C не обеспечивает полиморфизма.
Quake II во многих отношениях является блестящим образцом программного обеспечения, потому что это был самый популярный (по количеству лицензий) трёхмерный движок всех времён. На его основе было создано более 30 игр. Кроме того, он ознаменовал переход игровой индустрии от программной/8-битной системы цветов к аппаратной/24-битной. Этот переход произошёл примерно в 1997 году.
Поэтому я крайне рекомендую всем, кто любит программирование, изучить этот движок. Как обычно, я вёл бесконечное количество заметок, затем подчистил их и опубликовал как статью, чтобы сэкономить вам несколько часов.
Процесс «подчистки» меня сильно увлёк: в статье теперь более 40 мегабайт видео, скриншотов и иллюстраций. Сейчас я не знаю, стоили ли мои труды того, и нужно ли публиковать в будущем необработанные заметки в ASCII, выскажите своё мнение.
Читать полностью »
Разработка цифровой аппаратуры на C++-SystemC глазами SystemVerilog программиста
2015-12-28 в 4:20, admin, рубрики: c++, fpga, fpga/asic, hardware, hardware acceleration, systemc, Verilog, аппаратная реализация, аппаратное ускорение, высокая производительность, системное программирование, схемотехника 
SystemC это библиотека для C++ позволяющая моделировать всевозможные аппаратные системы на различном уровне абстракции. Поддерживается как традиционное дискретно-событийное моделирование, привычное программистам на Verilog и VHDL, так и аналоговое моделирование в духе SPICE/Verilog AMS. В комплект также входит библиотека и методология для виртуального прототипирования, библиотеки для написания тестовых окружений и верификации с использованием рандомизированных тестов.
В этой я расскажу о синтезируемом подмножестве SystemC, сравнивая его с синтезируемым SystemVerilog. Сам я пользуюсь SystemC уже где-то 3 года, а до этого несколько лет писал на Verilog/SystemVerilog. Попытаюсь охватить предмет с разных сторон: начиная с философских рассуждений о причинах возникновения SystemC, краткого обзора экосистемы и инструментария и заканчивая практическими примерами синтаксиса и семантики.
Подразумевается, что читатели знакомы с Verilog и C++.Читать полностью »
Пишем numpy-модуль для ускорения математических функций с помощью SIMD-инструкций
2013-10-25 в 8:21, admin, рубрики: python, scipy, simd, аппаратное ускорение, высокая производительность, Программирование, метки: scipy, simd, аппаратное ускорение Пакеты numpy и scipy предоставляют прекрасные возможности для быстрого решения различных вычислительных задач. Концепция универсальных функций (ufunc), работающих как со скалярными значениями, так и с массивами различных размерностей, позволяет получить высокую производительность при сохранении присущей языку Python простоты и элегантности. Универсальная функция обычно используются для выполнения одной операции над большим массивом данных, что идеально подходит для оптимизации с помощью SIMD-инструкций, однако мне не удалось найти готового решения, основанного на свободном программном обеспечении и позволяющего использовать SIMD для вычисления в numpy таких математических функций, как синус, косинус и экспонента. Реализовывать алгоритмы вычисления этих функций с нуля совсем не хотелось, но к счастью в интернете нашлось несколько свободных библиотек на языке «С». Преодолев лень сомнения, я решил написать собственный numpy-модуль, предлагающий универсальные функции для синуса, косинуса и экспоненты. За подробностями и результатами тестов добро пожаловать под кат.
Читать полностью »
В экспериментальный билд XBMC Android добавлена поддержка аппаратного ускорения видео
2013-01-20 в 19:11, admin, рубрики: android, XBMC, аппаратное ускорение, Медиа, Медиаплееры, метки: android, XBMC, аппаратное ускорение 
Хорошая новость для любителей просмотра HD видео на мобильных устройствах с ОС Android. В тестовый вариант XBMC Android добавлена поддержка аппаратного ускорения видео для многих устройств с указанной ОС. Стоит напомнить, кстати, что в первых версиях XBMC для Android была оптимизирована только поддержка процессоров Amlogic AM8726.
Почему перемещать элементы с помощью translate лучше, чем с position:absolute top/left
2012-12-23 в 10:20, admin, рубрики: css, css translate, Google Chrome, position:absolute, аппаратное ускорение, Веб-разработка, производительность анимацииДля перемещения элемента по экрану есть два основных способа:
- CSS 2D-преобразования и
translate(); position:absoluteи изменениеtop/left.
Крис Койер недавно писал, почему лучше и логичнее использовать translate (это быстрее, и свойство position имеет большее отношение к вёрстке, а не к визуальным эффектам и анимации, в отличие от translate).
Я хочу расширить его ответ и привести несколько хороших примеров. Я записал скринкаст, в котором помощью Chrome DevTools timline рассматриваю различия между этими подходами с точки зрения производительности, особенностей рендеринга и композитинга на GPU.
Если вам нужна сокращённая текстовая версия — продолжайте читать.Читать полностью »
Adobe не будет брать лицензионные отчисления с игр, которые принесли менее $50K
2012-03-31 в 19:45, admin, рубрики: adobe, flash player, Flash-платформа, game development, stage3d, аппаратное ускорение, лицензионные отчисления, монетизация, метки: flash player, stage3d, аппаратное ускорение, лицензионные отчисления, монетизацияКомпания Adobe выпустила Flash Player 11.2 и AIR 3.2. Для Flash Player впервые появилось автоматическое обновление в фоновом режиме а-ля Chrome (при установке предложат такой вариант). В новой версии реализовано множество специфичных функций для разработчиков игр: аппаратное ускорение до 60 FPS в 2D и 3D, относительные координаты курсора, события на правую и среднюю кнопки мыши, mouse-lock, многопоточное декодирование видео и т.д. Подробнее об этих нововведениях — на видео.
Но есть и плохая новость. Изменилась лицензия на Flash, так что теперь разработчики игр должны отчислять 9% дохода в компанию Adobe, если используют функции ApplicationDomain.domainMemory и Stage3D.request3DContext для аппаратного ускорения. Отчисления осуществляются только в том случае, если конкретная игра превысила объём дохода $50 тыс., и только с суммы, на которую было превышение.

