Порівняльний аналіз програмно-апаратного забезпечення алгоритмів глибокого навчання

2019;
: сс. 97-102
1
Національний університет “Львівська політехніка”
2
Національний університет «Львівська політехніка»

Автоматичний переклад, розпізнавання мови та її синтез, розпізнавання об'єктів та навіть людських емоцій – надзвичайно складні завдання, із якими легко справляються сучасні смартфони. Їх ефективна реалізація стала можливою завдяки широкому застосуванню алгоритмів штучного інтелекту та машинного навчання, серед яких надзвичайно популярними є штучні нейронні мережі та алгоритми глибокого навчання. Ці алгоритми проникли в усі галузі індустрії, а їх стрімкий розвиток неможливий без застосування апаратної акселерації та чіткої взаємодії між апаратними складовими та програмним забезпеченням. Особливо актуальним це завдання стає, коли програмне забезпечення, призначене для застосування в хмарах, адаптується для невеликих за розміром та обчислювальними потужностями вбудованих систем. Статтю присвячено трьом пунктам, що, відповідно, пов'язані з програмним забезпеченням глибокого навчання, спеціалізованою апаратурою на основі GPU та перспективами побудови акселераторів для алгоритмів глибокого навчання на основі програмованих логічних матриць. У роботі проведено порівняльний аналіз найпопулярніших програмних фреймворків, таких як Caffe, Theano, Torch, MXNet, Tensorflow, Neon, CNTK. Описано переваги GPU-рішень на основі CUDA і cuDNN. Розглянуто перспективи FPGA як високошвидкісних та енергоефективних рішень для розроблення алгоритмів глибокого навчання, особливо у поєднанні з мовою OpenCL.

[1] Christopher M. Bishop. Pattern Recognition and Machine Learning (Information Science and Statistics), Springer-Verlag Berlin, Heidelberg, 2006.

[2] Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, The MIT Press, 2016.

[3] L.Deng and D. Yu. Deep Learning: Methods and Applications. Foundations and Trends in Signal Processing, 2013, vol. 7, nos. 3-4, pp. 197-387. https://doi.org/10.1561/2000000039

[4] Mostapha Zbakh, Mohammed Essaaidi, Pierre Manneback, Chunming Rong, Cloud Computing and Big Data: Technologies, Applications and Security, Springer International Publishing, 2019. https://doi.org/10.1007/978-3-319-97719-5

[5] Gerassimos Barlas, Multicore and GPU Programming: An Integrated Approach, Morgan Kaufmann Publishers Inc., San Francisco, CA, 2014. https://doi.org/10.1016/B978-0-12-417137-4.00006-X

[6] Seonwoo Min, Byunghan Lee, Sungroh Yoon; Deep learning in bioinformatics, Briefings in Bioinformatics, Volume 18, Issue 5, 1 September 2017, pp. 851-869.

[7] NVIDIA GPU Computing. https://www.nvidia.com/object/doc_gpu_compute.html

[8] CUDA Toolkit Documentation. https://docs.nvidia.com/cuda/

[9] cuDNN Developer Guide. https://docs.nvidia.com/deeplearning/ sdk/cudnn-developer-guide/index.html

[10] Amazon EC2 F1 Instances. https://aws.amazon.com/ec2/ instance-types/f1/

[11] Cloud TPU documentation. https://cloud.google.com/tpu/docs/

[12] Accelerating DNNs with Xilinx Alveo Accelerator Cards. https://www.xilinx.com/support/documentation/ white_papers/wp504-accel-dnns.pdf

[13] An OpenCLTM Deep Learning Accelerator on Arria 10. https://arxiv.org/pdf/1701.03534.pdf.