В России сделали важный шаг к ускорению программ для новых процессоров
Увеличить на десятки процентов скорость выполнения алгоритмов некоторых программ удалось ученым ННГУ. По их словам, новые методы повышения производительности вычислений помогут решить многие научные и прикладные задачи. Результаты опубликованы в Lobachevskii Journal of Mathematics.
Микропроцессор – один из ключевых элементов вычислительных систем. Он в значительной степени определяет, с какой скоростью компьютер будет решать те или иные задачи. Микропроцессор выполняет арифметические и логические действия, контролирует общее состояние электронных систем не только в компьютерах и смартфонах, но и в автомобилях и бытовой технике.
В настоящее время существуют два типа архитектур микропроцессоров. Именно архитектура определяет их возможности с точки зрения программиста – обработку данных и инструкций, хранящихся в памяти, занесение их во внутренние регистры и выполнение определенных операций, рассказали ученые Нижегородского государственного университета им. Н.И. Лобачевского (ННГУ, Университет Лобачевского).
Так называемый CISC-тип микропроцессоров способен обрабатывать сложные команды из набора микроопераций, которые можно многократно повторять. Такой принцип делает код более компактным, но увеличивает время выполнения команд. RISC-тип же, наоборот, способен быстро выполнять каскад примитивных операций, однако код для таких микропроцессоров занимает большее количество памяти.
Архитектура микропроцессора RISC-V, с которой работают специалисты ННГУ, является открытой и бесплатной. Процессоры на основе этой архитектуры проектируются в США, в Европе, в Китае и в России. На рынке уже сейчас доступны выпускаемые серийно процессоры, пригодные для научных исследований и практического использования.
Специалисты Университета Лобачевского предложили способ рационального использования ресурсов микропроцессоров RISC-V, который позволяет ускорить выполнение некоторых алгоритмов библиотеки OpenCV – основы «компьютерного зрения» для робототехники, медицины, мобильных фотографий и разработки автопилотов.
«
«Мы нашли способ рационально использовать ресурсы векторных вычислений и ускорить некоторые алгоритмы из библиотеки OpenCV на десятки процентов», – рассказал один из авторов публикации, заведующий кафедрой высокопроизводительных вычислений и системного программирования Института информационных технологий, математики и механики ННГУ Иосиф Мееров.
Он пояснил, что при векторных вычислениях в ходе выполнения одной инструкции микропроцессор параллельно производит одну и ту же операцию над несколькими «порциями» данных, что позволяет значительно ускорить вычисления.