Специалисты Массачусетского технологического института и компании Adobe разработали систему Helium, автоматически оптимизирующую устаревшие участки кода Photoshop для выполнения на современном оборудовании. При этом исходный код не нужен — системе достаточно двоичного, причем даже без отладочных символов.
Photoshop тщательно оптимизируют для каждого поколения оборудования, но с модернизацией аппаратных технологий эти оптимизации устаревают, утрачивая актуальность, замедляя работу приложения и усложняя его код. Как сообщают в Adobe, в компании каждые несколько лет тратят огромные средства на переработку старого кода, и этот процесс отнимает у программистов несколько месяцев. Helium выполняет ту же работу за считанные часы или даже минуты.
В МТИ нашли способ идентифицировать в двоичном коде матричные ядра — циклы, выполняющие некоторое преобразование над большой областью пикселов. Такой код расходует много памяти и ресурсов процессора, и его быстродействие резко ухудшается с обновлением оборудования.
Helium преобразует двоичный код матричного ядра в код на созданном в МТИ высокоуровневом языке программирования Halide, ориентированном на обработку изображений, после чего выполняет оптимизацию. С помощью Helium удалось повысить быстродействие некоторых фильтров Photoshop на 75%, а скорость работы программы IrfanView, менее оптимизированной, — на 400-500%.