NeuroPro

нейронные сети
и анализ данных

Главная
Новости
Услуги
Нейронные сети
Программы
Статьи
Заметки
Ссылки
Вопросы и ответы
Об авторе / контакты
Заметки

Нейрокомпьютеры из видеокарт

В последние годы практически прекратились продажи специализированных нейрокомпьютеров: рост мощности персональных компьютеров и суперкомпьютеров позволил использовать программную эмуляцию - нейропрограммы, а нейрокомпьютеры и нейропроцессоры применяют только для отдельных задач. Но научно-инженерная мысль двигается, в журналах и материалах конференций по нейронным сетям продолжают появляться работы с описанием новых электронных реализаций нейрокомпьютеров, нейропроцессоров, нейронных сетей.

Однако, могут получить распространение нейровычисления на обычных графических ускорителях (видеокартах, GPU) персональных компьютеров. Массовость рынка видеокарт делает массовым и потенциальный рынок тех нейропрограмм, которые будут переносить нейровычисления с обычного процессора на процессор видеоплаты или одновременно использовать оба эти процессора. И цены на такие программы-нейроэмуляторы должны быть на относительно невысоком уровне.

Теперь о потенциальной производительности нейрокомпьютеров-видеокарт. Мысль об этом у меня возникла в начале 2005г, когда стало понятно, что вскоре относительно бюджетные цены в $100-200 получат видеокарты с 8-12 пиксельными конвейерами (и на момент написания заметки это именно так), а рост числа пиксельных и вершинных конвейеров станет одним из главных способов повышения производительности видеосистемы. Так, выпускаемый сейчас (весной 2006г) на рынок фирмой ATI их лидирующий графический процессор X1900 имеет аж 48 пиксельных конвейеров - года через два он или его потомки вполне смогут подешеветь до привлекательного уровня цен. Плюс обкатанные в 2005г технологии SLI и CrossFire (одновременная работа двух видеокарт в компьютере, с автоматическим аппаратным распараллеливанием расчетов между ними) также обеспечивают повышение производительности видеосистемы. Можно вспомнить и про постоянный рост объемов собственной памяти видеокарт. Конечно, сложно по соотношению частот обычного и графического процессоров и по числу конвейеров точно оценить возможный коэффициент ускорения - но результаты указанных ниже работ демонстрируют ускорение в разы и более.

Соответственно, с ростом числа конвейеров графического процессора потенциал параллельности вычислений (внутренняя параллельность вычислений - отличительное свойство нейросетей) делает перспективным перенос многих ресурсоемких нейроалгоритмов с центрального процессора на видеокарту. Видеокарта, таким образом, выступает в роли нейрокомпьютера, изначально встроенного в персональный компьютер. Дело остается за написанием программ. Стоит отметить, что при этом смогут использоваться и относительно нетрадиционные решения - например, замена вычислений с плавающей запятой на вычисления с использованием целочисленных операндов (фиксированная запятая или реально целочисленные аргументы). Но теоретическая и практическая база для этого уже накоплена при разработке моделей нейросетей и способов нейровычислений для многих из созданных ранее нейрокомпьютеров и нейропроцессоров (которые блоков вычислений с плавающей запятой не имели).

Использование графических плат для общевычислительных целей (например, для реализации методов линейной алгебры, Фурье-преобразований) уже набрало обороты за последние годы - см., например, [1-3]. Формируется и достаточно активный поток работ по переносу на GPU нейросетевых и околонейросетевых алгоритмов - см. соответственно [4-9] и [10,11]. Будем следить за результатами и подумывать о поддержке этого направления.

Литература
1. http://www.cnews.ru/news/top/index.shtml?2005/06/14/180296
2. http://www.gpgpu.org/
3. Owens J.D., Luebke D., Govindaraju N., Harris M., Kruger J., Lefohn A.E., Purcell T.J. A survey of general-purpose computation on graphics hardware / Proc. Eurographics'2005, pp.21-51.
4. Oh K.-S., Jung K. GPU implementation of neural networks / Pattern Recognition, Vol.37, No.6. 2004. - pp.1311-1314.
5. Bernhard F., Keriven R. Spiking neurons on GPUs / Research report 05-15, CERTIS-ENPS, Paris, France, 2005. - 9p.
6. Zhongwen L., Hongzhi L., Zhengping Y., Xincau W. Self-organizing maps computing on graphical process unit / Proc. ESANN'2005, Bruges, Belgium, 2005. - pp.557-562.
7. Davis C.E. Graphics processing unit computation of neural networks / MS Thesis, Univ. New Mexico, Albuquerque, USA, 2005. - 121p.
8. Steinkraus D, Buck I, Simard P. GPU's for machine learning algorithms / Proc. ICDAR 2005, vol.2, pp.1115-1120.
9. Chellapilla K., Puri S., Simard P. High performance convolutional neural networks for document processing / Proc. 10th Int. Workshop on Frontiers in Handwriting Recognition (IWFHR'2006). 2006.
10. Ohmer J., Maire F., Brown R. Implementation of kernel methods on the GPU / Proc. DICTA'2005, Cairns, Australia, 2005. - 8p.
11. Hall J.D., Hart J.C. GPU acceleration of iterative clustering / Proc. SIGGRAPH'2004. - 13p.

21 марта 2006г.