Использование ПЛИС для решения задачи расчета латинских квадратов.
Цитата: AlexA от 03.12.2022, 14:10Как и обещано для этого обсуждения создана отдельная тема.
Для затравки - вступление.
На Национальном Суперкомпьютерном Форуме 2022, в Zoom-секции "ИИ и машинное обучение" был озвучен доклад Александра Альбертьяна на тему о генерации латинских квадратов на ПЛИС. При этом был представлен реально работающий образец устройства.
Главное преимущество (как я понял - очень быстрая работа, но об это лучше расскажут разработчики).
В данном случае использовалась ПЛИС Altera Cyclone V, на плате с которой, дополнительно был установлен небольшой экран для вывода основной информации о ходе вычислений.
Ниже фотографии как самого докладчика, так и устройства. Так же приведены скрины отладочных экранов и ссылка на видео с ходом вычислений.
Система работает на частоте 66МГц, так как схема асинхронная.
4% ПЛИС заняла статистика.
Генерировались квадраты 9-го порядка.
Как видно на экранчике скорость генерации порядка 66,5 миллионов квадратов в секунду.P.S.
1. Кому интересна эта информация по этой теме, задавайте вопросы. Автор обещал зайти и подробно ответить.
2. Кроме того, какие-то пояснения сможет дать Э.Ватутин (я думаю), так как его программа "крутилась" на этом устройстве.
3. Организаторы обещали выложить запись Zoom-докладов, но только через 2-3 недели. Что довольно печально.
Как и обещано для этого обсуждения создана отдельная тема.
Для затравки - вступление.
На Национальном Суперкомпьютерном Форуме 2022, в Zoom-секции "ИИ и машинное обучение" был озвучен доклад Александра Альбертьяна на тему о генерации латинских квадратов на ПЛИС. При этом был представлен реально работающий образец устройства.
Главное преимущество (как я понял - очень быстрая работа, но об это лучше расскажут разработчики).
В данном случае использовалась ПЛИС Altera Cyclone V, на плате с которой, дополнительно был установлен небольшой экран для вывода основной информации о ходе вычислений.
Ниже фотографии как самого докладчика, так и устройства. Так же приведены скрины отладочных экранов и ссылка на видео с ходом вычислений.
Система работает на частоте 66МГц, так как схема асинхронная.
4% ПЛИС заняла статистика.
Генерировались квадраты 9-го порядка.
Как видно на экранчике скорость генерации порядка 66,5 миллионов квадратов в секунду.
P.S.
1. Кому интересна эта информация по этой теме, задавайте вопросы. Автор обещал зайти и подробно ответить.
2. Кроме того, какие-то пояснения сможет дать Э.Ватутин (я думаю), так как его программа "крутилась" на этом устройстве.
3. Организаторы обещали выложить запись Zoom-докладов, но только через 2-3 недели. Что довольно печально.
Цитата: evatutin от 04.12.2022, 12:03От себя добавлю, что устройство получилось достаточно компактным в плане аппаратной сложности. Моего тут в общем-то на данный момент только идея с тем, как делать перебор с вариацией порядка элементов ДЛК. Но результат однозначно интересный, Александр большой молодец! Дальше будем пробовать усовершенствовать, если получится. Темп перебора сопоставим с одним ядром CPU при том, что тактовая частота всего 66 МГц! Малая аппаратная сложность устройства позволит в перспективе напихать несколько параллельно работающих кусков схемы в одну ПЛИС (по аналогии с ядрами CPU), что должно кратно увеличить темп. Эта особенность может пригодиться нам в перспективе в некоторых экспериментах...
От себя добавлю, что устройство получилось достаточно компактным в плане аппаратной сложности. Моего тут в общем-то на данный момент только идея с тем, как делать перебор с вариацией порядка элементов ДЛК. Но результат однозначно интересный, Александр большой молодец! Дальше будем пробовать усовершенствовать, если получится. Темп перебора сопоставим с одним ядром CPU при том, что тактовая частота всего 66 МГц! Малая аппаратная сложность устройства позволит в перспективе напихать несколько параллельно работающих кусков схемы в одну ПЛИС (по аналогии с ядрами CPU), что должно кратно увеличить темп. Эта особенность может пригодиться нам в перспективе в некоторых экспериментах...
Цитата: Yura12 от 04.12.2022, 22:00
А планируется ли в будущем выпускать это устройство массово? Или будут лишь несколько единичных экземпляров?
А планируется ли в будущем выпускать это устройство массово? Или будут лишь несколько единичных экземпляров?
Цитата: AlexA от 04.12.2022, 22:14Цитата: Yura12 от 04.12.2022, 22:00А планируется ли в будущем выпускать это устройство массово? Или будут лишь несколько единичных экземпляров?
так это вообще Александром на коленке - без кавычек - сделано (ну, на монтажном столе, вероятно) . Так что насчет практического применения это к кому-то другому.
Но вопрос крайне закономерен.
Не зря ведь у артистов есть всякие антрепренеры, которые занимаются практической реализацией их талантов.
Где бы и нам таких найти?
Цитата: Yura12 от 04.12.2022, 22:00А планируется ли в будущем выпускать это устройство массово? Или будут лишь несколько единичных экземпляров?
так это вообще Александром на коленке - без кавычек - сделано (ну, на монтажном столе, вероятно) . Так что насчет практического применения это к кому-то другому.
Но вопрос крайне закономерен.
Не зря ведь у артистов есть всякие антрепренеры, которые занимаются практической реализацией их талантов.
Где бы и нам таких найти?
Цитата: AenBleidd от 04.12.2022, 22:25Цитата: Yura12 от 04.12.2022, 22:00
А планируется ли в будущем выпускать это устройство массово? Или будут лишь несколько единичных экземпляров?
ПЛИС можно и самому купить, а вот чтобы его прошить, - тут уже умения нужны и специальное оборудование. Если бы не этот фактор - BOINC мог бы поддерживать данный класс устройств, но увы.
Цитата: Yura12 от 04.12.2022, 22:00
А планируется ли в будущем выпускать это устройство массово? Или будут лишь несколько единичных экземпляров?
ПЛИС можно и самому купить, а вот чтобы его прошить, - тут уже умения нужны и специальное оборудование. Если бы не этот фактор - BOINC мог бы поддерживать данный класс устройств, но увы.
Цитата: evatutin от 05.12.2022, 14:04После покупки Altera'ы Intel говорила, что прям вот-вот и начнет делать Xeon'ы, у которых под крышкой будет еще один кристалл ПЛИС. Прошел год, два, три, ..., а обещанного все нет и нет. На мой взгляд данный подход был был наиболее удобным для более менее массового использования, в т.ч. в BOINC. Паять каждому на коленке для себя имхо не выход...
PS. ПЛИС'ы — не единственный вид специализированных ускорителей. Но вся эта экзотика очень специфична в плане программирования, не любую задачу можно положить на любую подобную железку. У нас на кафедре на 4-м курсе читается курс по спецпроцессорам, где эти вопросы рассматриваются.
После покупки Altera'ы Intel говорила, что прям вот-вот и начнет делать Xeon'ы, у которых под крышкой будет еще один кристалл ПЛИС. Прошел год, два, три, ..., а обещанного все нет и нет. На мой взгляд данный подход был был наиболее удобным для более менее массового использования, в т.ч. в BOINC. Паять каждому на коленке для себя имхо не выход...
PS. ПЛИС'ы — не единственный вид специализированных ускорителей. Но вся эта экзотика очень специфична в плане программирования, не любую задачу можно положить на любую подобную железку. У нас на кафедре на 4-м курсе читается курс по спецпроцессорам, где эти вопросы рассматриваются.
Цитата: Yura12 от 05.12.2022, 16:07
Конечно, ПЛИС вещь интересная и перспективная, но всё же моё мнение, что именно для распределённых вычислений - это не самый лучший выбор ввиду их низкой производительности.
Мне кажется даже старенький Celeron будет в разы быстрее нескольких ПЛИС ??? Это же так?
Для распределённых вычислений лучше уж лишний Ryzen прикупить.
Конечно, ПЛИС вещь интересная и перспективная, но всё же моё мнение, что именно для распределённых вычислений - это не самый лучший выбор ввиду их низкой производительности.
Мне кажется даже старенький Celeron будет в разы быстрее нескольких ПЛИС ??? Это же так?
Для распределённых вычислений лучше уж лишний Ryzen прикупить.
Цитата: AenBleidd от 05.12.2022, 17:01На самом деле нет. ПЛИС в определенных задачах намного эффективнее. Как пример, сейчас Bitcoin майнят на ASIC ( тот же ПЛИС), и любое топовое десктопное оборудование проигрывает в производительности.
На самом деле нет. ПЛИС в определенных задачах намного эффективнее. Как пример, сейчас Bitcoin майнят на ASIC ( тот же ПЛИС), и любое топовое десктопное оборудование проигрывает в производительности.
Цитата: AlexA от 06.12.2022, 20:58Так. Для "затравки".
Списался с Александром, задал несколько вопросов. Надеялся на полноценное интервью, но не сложилось.
Тезка был довольно сдержан в ответах Тем не менее отпишу то, что удалось выяснить.
Вопрос: Почему заинтересовался ПЛИС и почему выбор пал на Циклон 5 ?Ответ: ПЛИС это голубая мечта детства - я годов с 90-х считал, что это идеальное средство для реализации всего чего угодно. Без ограничений) Насчет Cyclone 5, ответ простой - так сложилось.) Есть еще Cyclone 4 с PCIe и даже Arria10 но с неизвестой распиновкой.) Самое простое - наиболее беспроблемный и поддерживаемый вариант. А так, в принципе, все равно, какая FPGA. Или даже CPLD 9 порядка точно влезет в нее.
Вопрос: С какими сложностями столкнулся в ходе программирования и подключения. Какие выявились особенности?
Ответ: Хорошо, про сложности тоже расскажу. Так как язык описания аппаратуры это совсем не язык программирования. Это поначалу смущает.)
Вопрос: Почему была запрограммирована задача поиска ДЛК? Какие были еще варианты задач?
Ответ: Задача... очень хорошо легла в концепцию. Я хотел сделать аппаратное решение и мне эта задача показалась очень удобной - я понимаю как ее сделать и она очень хорошо подходит для логической схемы.
Мне кажется это счастье, когда мечты реализуются. А для творческих людей сам процесс часто гораздо важнее результата. Но и результат впечатляет.
P.S. Конечно, лаконично и информации немного. Но, если кому-то интересно - задавайте тут вопросы, я или Александра сюда затащу или протранслирую ему вопросы, а сюда ответы.
Так. Для "затравки".
Списался с Александром, задал несколько вопросов. Надеялся на полноценное интервью, но не сложилось.
Тезка был довольно сдержан в ответах Тем не менее отпишу то, что удалось выяснить.
Вопрос: Почему заинтересовался ПЛИС и почему выбор пал на Циклон 5 ?
Ответ: ПЛИС это голубая мечта детства - я годов с 90-х считал, что это идеальное средство для реализации всего чего угодно. Без ограничений) Насчет Cyclone 5, ответ простой - так сложилось.) Есть еще Cyclone 4 с PCIe и даже Arria10 но с неизвестой распиновкой.) Самое простое - наиболее беспроблемный и поддерживаемый вариант. А так, в принципе, все равно, какая FPGA. Или даже CPLD 9 порядка точно влезет в нее.
Вопрос: С какими сложностями столкнулся в ходе программирования и подключения. Какие выявились особенности?
Ответ: Хорошо, про сложности тоже расскажу. Так как язык описания аппаратуры это совсем не язык программирования. Это поначалу смущает.)
Вопрос: Почему была запрограммирована задача поиска ДЛК? Какие были еще варианты задач?
Ответ: Задача... очень хорошо легла в концепцию. Я хотел сделать аппаратное решение и мне эта задача показалась очень удобной - я понимаю как ее сделать и она очень хорошо подходит для логической схемы.
Мне кажется это счастье, когда мечты реализуются. А для творческих людей сам процесс часто гораздо важнее результата. Но и результат впечатляет.
P.S. Конечно, лаконично и информации немного. Но, если кому-то интересно - задавайте тут вопросы, я или Александра сюда затащу или протранслирую ему вопросы, а сюда ответы.
Цитата: evatutin от 06.12.2022, 21:00В корне не соглашусь с обоими [поста AlexA выше еще не было, пока писал ответ :)]
1. В моей кандидатской было разработано спец устройство для работы с деревьями специального вида. По оценкам оно дает выигрыш на 3-4 порядка по отношению к однопоточной CPU-реализации при условии, что в его составе используются простейшие последовательные комбинационные схемы (все статьи на моей страничке лежат, можно посмотреть при желании). Если эти схемы заменить на более быстрые, но и более аппаратно сложные, выигрыш будет еще больше. Таким образом, мы выигрываем в 3-4 раза за счет архитектуры и проигрываем примерно на порядок за счет тактовой частоты. Интегральный выигрыш есть.
2. В прошлом году была защищена кандидатская диссертация моей аспирантки, в которой она умножала бинарные матрицы (можно умножать и матрицы общего вида, принципы те же и придуманы не мной, есть лишь небольшие отличия). Главный вывод — затраты вычислительного времени пропорциональны величине 6N (N — размер матрицы), иногда мешает память, но в перспективе это можно победить, я очень надеюсь, что эта кандидатская не последняя в данном направлении, ученики зреют, лишь бы не свалили на полпути... На любом процессоре или видюхе лучшее, что вы можете сделать, это ~2N^3/K в идеальных условиях, когда ничего не мешает, что обычно не так, где K — число вычислителей (ядер). Поделите второе на первое, получите выигрыш, порядок которого совпадает с описанной выше цифрой.
3. Александр не делал теоретических оценок (но мы это обязательно сделаем в перспективе), но по его практическим результатам видно, что даже на частоте на 2 порядка ниже CPU производительность схемы сопоставима с производительностью 1 ядра CPU. При этом схема достаточно простая, ее аппаратная сложность низкая, т.е. на кристалл можно напихать много ее копий, что будет эквивалентом много-много-ядерного процессора. Если бы ПЛИСы были в массах, можно было бы попробовать сделать их поддержку в рамках используемых расчетных модулей, но этого (пока?) нет...
4. Все-таки ПЛИС (FPGA или CPLD) и ASIC это все варианты реализации спецускорителей, но принципиально разные. Первое относительно медленное по тактовым частотам, но и относительно дешевое (десятки — сотни тысяч рублей на кристалл). Если на грубых аналогиях, то это конструктор, из которого логическим образом (перепрошивкой перед стартом) собирается схема. Второе — это когда на кристалл схема наносится однократно методом литографии. Частоты не уступают CPU/GPU, но цена проектирования такого кристалла составляет несколько миллиардов долларов, что оправдывает их изготовление только в массовом производстве (миллионами штук минимум). А еще есть БМК, которые ближе к ПЛИС...
Поэтому я лично вижу в ПЛИС огромный потенциал и с нетерпением жду, когда они массово появятся на рынке. По слухам мы и в России что-то там пытаемся делать в плане их самостоятельного производства, только кроме слухов и ничего конкретного не видел. Может быть и сделаем когда-нить...
В корне не соглашусь с обоими [поста AlexA выше еще не было, пока писал ответ :)]
1. В моей кандидатской было разработано спец устройство для работы с деревьями специального вида. По оценкам оно дает выигрыш на 3-4 порядка по отношению к однопоточной CPU-реализации при условии, что в его составе используются простейшие последовательные комбинационные схемы (все статьи на моей страничке лежат, можно посмотреть при желании). Если эти схемы заменить на более быстрые, но и более аппаратно сложные, выигрыш будет еще больше. Таким образом, мы выигрываем в 3-4 раза за счет архитектуры и проигрываем примерно на порядок за счет тактовой частоты. Интегральный выигрыш есть.
2. В прошлом году была защищена кандидатская диссертация моей аспирантки, в которой она умножала бинарные матрицы (можно умножать и матрицы общего вида, принципы те же и придуманы не мной, есть лишь небольшие отличия). Главный вывод — затраты вычислительного времени пропорциональны величине 6N (N — размер матрицы), иногда мешает память, но в перспективе это можно победить, я очень надеюсь, что эта кандидатская не последняя в данном направлении, ученики зреют, лишь бы не свалили на полпути... На любом процессоре или видюхе лучшее, что вы можете сделать, это ~2N^3/K в идеальных условиях, когда ничего не мешает, что обычно не так, где K — число вычислителей (ядер). Поделите второе на первое, получите выигрыш, порядок которого совпадает с описанной выше цифрой.
3. Александр не делал теоретических оценок (но мы это обязательно сделаем в перспективе), но по его практическим результатам видно, что даже на частоте на 2 порядка ниже CPU производительность схемы сопоставима с производительностью 1 ядра CPU. При этом схема достаточно простая, ее аппаратная сложность низкая, т.е. на кристалл можно напихать много ее копий, что будет эквивалентом много-много-ядерного процессора. Если бы ПЛИСы были в массах, можно было бы попробовать сделать их поддержку в рамках используемых расчетных модулей, но этого (пока?) нет...
4. Все-таки ПЛИС (FPGA или CPLD) и ASIC это все варианты реализации спецускорителей, но принципиально разные. Первое относительно медленное по тактовым частотам, но и относительно дешевое (десятки — сотни тысяч рублей на кристалл). Если на грубых аналогиях, то это конструктор, из которого логическим образом (перепрошивкой перед стартом) собирается схема. Второе — это когда на кристалл схема наносится однократно методом литографии. Частоты не уступают CPU/GPU, но цена проектирования такого кристалла составляет несколько миллиардов долларов, что оправдывает их изготовление только в массовом производстве (миллионами штук минимум). А еще есть БМК, которые ближе к ПЛИС...
Поэтому я лично вижу в ПЛИС огромный потенциал и с нетерпением жду, когда они массово появятся на рынке. По слухам мы и в России что-то там пытаемся делать в плане их самостоятельного производства, только кроме слухов и ничего конкретного не видел. Может быть и сделаем когда-нить...