Поиск сходства (Similarity search) в последние годы стал ключевой концепцией в науке, позволяя исследователям анализировать огромные объемы неструктурированных данных, выявляя связи, которые невозможно выявить другими методами. Метод этот очень ресурсоемкий и затратный: для выявления сходства между элементами необходимо проанализировать миллионы или миллиарды записей базы данных, выполняя побитное сравнение. Примером использования подобных методов может служить распознавание лиц, секвенирование ДНК, разработка новых лекарственных препаратов и многое другое.
На данный момент для реализации подобных алгоритмов используются процессоры или графические ускорители, однако они не являются оптимальным решением из-за того, что возникает узкое место между памятью и ядрами процессора или GPU. На CPU алгоритм поиска сходства запускает по одному процессу для каждого ядра, при этом набор данных или его часть считываются в память, а затем ядро ЦП сравнивает каждую запись набора данных с исходным элементом. При поиске схожих изображений база данных может содержать миллиарды записей и поиск занимает достаточно много времени, также не стоит забывать об энергопотреблении серверных процессоров, которые давно перешагнули за отметку в 200 Вт.
С графическими ускорителями дела обстоят несколько лучше: GPU имеет в своем распоряжении тысячи унифицированных ядер, однако они работают недостаточно быстро и поиск похожих элементов все равно занимает значительное время. По словам GSI Technology, ее специализированное решение для алгоритма поиска сходства значительно опережает Intel Xeon и GPU NVIDIA. По сравнению с Intel Xeon специализированный «блок ассоциативной обработки» (APU) Gemini выполняет поиск схожих элементов в 100 раз быстрее, потребляя при этом на 70% меньше электроэнергии.
Архитектура APU Gemini построена таким образом, что вычислительные блоки размещаются вместе с памятью, что позволяет обрабатывать данные параллельно, избегая перемещения данных из памяти в ядро и обратно. Даже в случае оптимизированного обмена с высокоскоростной памятью в GPU, эти накладные расходы все равно оказывают значительное влияние на скорость работы алгоритма.
APU Gemini выпускается в виде карты расширения с интерфейсом PCIe 4.0: на плате размещаются SRAM (Static Random Access Memory) и два миллиона битовых процессоров для вычислений в памяти. GSI совмещает 1-битные блоки обработки информации с линиями чтений-изменения-записи SRAM в одном массивном чипе, причем все 1-битные ядра могут работать параллельно.
Карта GSI обладает двумя блоками SRAM по 96 Мбайт и 16 Гбайт общей памяти. Для сравнения: GPU NVIDIA A100 может обрабатывать 104х4096 бит за тактовый цикл 1,4 ГГц и имеет пропускную способность памяти 7 Тбайт/с, а APU Gemini выполняет два миллиона 1-битных операций за тактовый цикл 400 МГц с пропускной способностью памяти 26 Тбайт/с, имея при этом в разы меньшее энергопотребление.
Решение получилось интересным, однако не нужно забывать о том, что оно очень узкоспециализированное и создано только для одной, пусть и очень ресурсоемкой задачи. Подобные решения все чаще появляются в последние годы из-за внедрения множества алгоритмов ИИ и анализа больших данных, с которыми универсальные процессоры или GPU справляются хуже специализированных решений.