�@�B�w�K�^Deep Learning�̎d����������2017�N�A�\�t�g�E�F�A�G���W�j�A��FPGA���w�Ԃׂ����R�FPython�R�[�h����FPGA�𐶐��A�[�w�w�K����DNN���n�[�h�E�F�A��

�\�t�g�E�F�A�G���W�j�A��FPGA���g���n�[�h��������ɉ������Ă��Ă���B�\�t�g�E�F�A�J���҂̗����FPGA�Ɏ��g�ރC�x���g�uFPGA�G�N�X�g���[���E�R���s���[�e�B���O�v����ɂ��鍲���ꌛ���AFPGA�̍��ʍ����ɂ��f�B�[�v���[�j���O�ɂ‚��Č������Ă��铌���H�Ƒ�w�̒����[�M���A������FPGA�x���_�[�ł���U�C�����N�X�̐_�ے��O�����A�}���ɏ펯���ς��‚‚���FPGA�̓�������荇�����B

» 2017�N01��30�� 10��00�� ���J
[PR�^��IT]
PR

�@�\�t�g�E�F�A�G���W�j�A��FPGA�ifield-programmable gate array�j���g���n�[�h��������ɉ������Ă��Ă���B�N���E�h�T�[�r�X��FPGA�����p�ł�����APython�ŋL�q�����j���[�����l�b�g���[�N��FPGA�ɍ��ʍ����ł��錤�����ʂ��o�Ă����肵�Ă���̂��B

�@�\�t�g�E�F�A�J���҂̗����FPGA�Ɏ��g�ރC�x���g�uFPGA�G�N�X�g���[���E�R���s���[�e�B���O�v����ɂ��鍲���ꌛ���AFPGA�̍��ʍ����ɂ��f�B�[�v���[�j���O�ɂ‚��Č������Ă��铌���H�Ƒ�w�̒����[�M���i�����������j�A������FPGA�x���_�[�ł���U�C�����N�X�̐_�ے��O�����A�}���ɏ펯���ς��‚‚���FPGA�̓�������荇�����B

���k��o�Ȏҁi������_�ے��O���i�U�C�����N�X �O���[�o���Z�[���X�A���h�}�[�P�b�g�}�[�P�e�B���O�� �V�j�A�}�l�[�W���[�j�A�����[�M���i�����H�Ƒ�w �H�w�@ ���ʐM�n �y�����j�A�����ꌛ���iIT��ƋΖ��A�uFPGA�G�N�X�g���[���E�R���s���[�e�B���O�v��Ɂj�j

�@�{�e�ł͍��k��̒�����A�\�t�g�E�F�A�G���W�j�A��FPGA�⍂�ʍ��������߂��錻��A�����āA����ǂ̂悤�ȃc�[�����g���ׂ����A�\�t�g�E�F�A�G���W�j�A��FPGA�Ɏ��g�ލۂ̉ۑ�Ȃǂɂ‚��Ă��`������B

�i�ȉ��A�h�̗��j

�R�[�h���炢���Ȃ�FPGA�����A���ʍ������嗬�̎���

������������A�_�ۂ�����O��̍��k���ɂ��o�ꂵ�Ă��܂��B�����搶�ɂ́A���ȏЉ�����肢�ł��܂����H

�����@2016�N4�����瓌���H�Ƒ�w�Ɉڂ�܂������A����܂Ŏ�������w�A���Q��w�ɂ��܂����B����FPGA��HDL�i�n�[�h�E�F�A�L�q����FHardware description language�j���������̂͊w�ʂ�����Ă���ŁA���[�^�[�̃p�P�b�g�����̃v���g�^�C�v�Ƃ���FPGA���g�����̂��ŏ��ł��BFPGA�Ńp�P�b�g���ފ���������\�t�g�E�F�A����20�{�قǑ���������ł��ˁB���̑����͖��͓I�ł����BXilinx�̃{�[�h���ŏ��ɔ������̂́uSpartan-3 �X�^�[�^ �L�b�g�v�B�������������HDL���o���܂����B

�@�ŋ߂͑�w���Z������HDL���������Ԃ���ꂸ�A2015�N���납�獂�ʍ����΂���ł��BXilinx�̍��ʍ����c�[���uVivado HLS�v�iHigh-Level Synthesis�j���ƈꔭ�ō����ł���B�u����ȂɊȒP�Ȃ񂾁v�Ǝv���܂����B��w�ł́A�iFPGA�Œʏ�g���n�[�h�E�F�A�L�q����jVerilog HDL�͎g�킸�A���ʍ������������Ă��܂���B�����\�t�g�E�F�A�̃R�[�h���������o��FPGA���g���Ă���w���΂���ł��B

�����@�������B�V����ł��ˁB

�����@�����̊w���ɂ́AXOR�Q�[�g�̐^���l�͏����Ȃ��Ă��AFPGA�����̃f�B�[�v���[�j���O�̐݌v�͂ł���҂����܂��B�펯���������ς���Ă��Ă��܂��B

�_���@����A�����܂ŐV�����̂͒����搶�̂Ƃ��낮�炢�ł��B

�����@�����搶�̂悤�ɖ^�����I�Q�[���}�V����1�T�Ԃ�FPGA�ɗ��Ƃ���l�͓��ꂾ�Ǝv���܂��B

���������搶��FPGA�Ńf�B�[�v���[�j���O�Ɏ��g�񂾂̂́A������������������܂������H

�����H�Ƒ�w �H�w�@ ���ʐM�n �y���� �����[�M��

�����@2014�N���炢�ɁA�f�B�[�v���[�j���O�̌���������ɂȂ�܂������A�f�B�[�v���[�j���O�Ő�s���Ă���l��GPU���[�U�[�΂���ŁA���̒��Ɋ����ē���͓̂���ƍl���܂����B�ł�FPGA�ł���Ă��錤���҂͂قƂ�ǂ��Ȃ������B����̓`�����X���Ǝv���A���g�݂܂����B

�@���́A�ŋ߂́u�l�H�m�\�v�u�[���Ńf�B�[�v���[�j���O�����ڂ����O��2005�N����ɁA3�w�j���[�����l�b�g����|���Ă��āA���Z���x�͂���قǂ���Ȃ����Ƃ͕������Ă��܂����B�uGPU�̃A�[�L�e�N�`���͋@�B�w�K�Ɍ����Ă���v�Ƃ����l����������܂������AFPGA�ƌŒ菬���_�̘_����H�ł�������������B�����l���܂����B

�����ǂ�Ȑ��ʂ������܂������H

�����@�f�B�[�v���[�j���O�ʼn��Z���x��1�r�b�g�܂ŗ��Ƃ����Ƃɐ������܂����B�F�����x�������ቺ���邱�Ƃ����e����ƁA�n�[�h�E�F�A�ʂ��5����1�ɉ����邱�Ƃ��ł��܂��B

�@FPGA�̍��ʍ����Ńf�B�[�v���[�j���O���s����c�[���́A�����ƁA��͐��E���Ő��Ⴎ�炢�����Ȃ��̂ł͂Ȃ��ł��傤���B�{�^���������ƁA�w�K�������j���[�����l�b�g���[�N��FPGA�ɗ�����B���܂������΁A2017�N�x������p���ł������ł��B

�����f�B�[�v���[�j���O�̃��C�u�����͉����g���܂����H

�����@TensorFlow�A�����Caffe�AChainer�Ȃǂ��g���܂��B����ɉ�Ђ╔���ɂ���Ă��낢��ȃt���[�����[�N���g���̂ŁA�����̃t���[�����[�N�ɑΉ����Ă��܂��BPython�ŃR�[�h�������āA����H�v������C++�ɗ��Ƃ�����ŁAXilinx�̃c�[���ɓ����Ɠ����܂��B

����FPGA�Ńf�B�[�v���[�j���O����|����̂ɁAPython���������OK�Ȃ�ł����H

�����@OK�ł��BC���ꂷ�珑���Ȃ��Ă����B

�U�C�����N�X �O���[�o���Z�[���X�A���h�}�[�P�b�g�}�[�P�e�B���O�� �V�j�A�}�l�[�W���[ �_�ے��O��

�_���@Python�Ő݌v����Ƃ������b�̂悤�ɁAFPGA�̎g����̒���C/C++����ʌ���Ő݌v����l���o�Ă��Ă���Ă���̂́A�x���_�[�Ƃ��Ă͂܂��ɑ_���ʂ�ł��肪�������Ƃł��B

�@10�N�O��U��Ԃ�ƁA���Ȃ�̐l���̃n�[�h�E�F�A�G���W�j�A�����̒��ɂ��āA���̐l�����𑊎�Ƀr�W�l�X�����Ă��܂����B���͗��n�̑�w�ɓ����čH�w����I��Ńn�[�h�E�F�A��׋�����w���͏��Ȃ��Ȃ��Ă���B���E�I�Ɍ��Ă������X��������܂��B������FPGA�ɐe����ł��炤�ɂ́A���̎嗬�̃v���O���~���O����ŊJ���ł���悤�ɂ��Ȃ��ƁB

�@�ȑO�͊J���c�[���̃x���_�[�����ʍ����c�[��������Ă��܂����B������FPGA�����ł͂Ȃ�ASIC�i����p�r�����W�ω�H�FApplication Specific Integrated Circuit�j���������S���������߁AFPGA�ɍœK�������R�[�h���Ȃ��Ȃ��������Ă���Ȃ������B�����Ŏ��ЂŃc�[�������‚ׂ����ƍl���A���ʍ����c�[���uAutoESL�v�̃x���_�[�𔃎�����Ȃǂ��āA���ʌ�������R���p�C���̐����ɒ��͂����̂ł��B

�����@���͔Y�݂�����܂��āB��w�̓V���w�҂̃`�[���Ƌ������������Ă���̂ł����A�ȑO��Fortran��C�̃R�[�h��FPGA�ɂ���Ηǂ������B�Ƃ��낪�ŋ߂́i���v��͋@�\�����͂ȁjR�����i����d�l���ŐV�߂���jC++ 17�ȂǂŃR�[�h�������Ă���B�ނ炩�猩��Βʏ��C�^C++�͉��ʌ���ł��B�����瑁�����ʂȌ��ꂩ��̍������ł���悤�ɂȂ��Ăق����ƁB

�����@��������Ă���G�N�X�g���[���R���s���[�e�B���O�׋���̃T�u�Z�b�g�Łu���ʍ����F�̉�v�Ƃ����̂������āA�����ł�Vivado HLS�̂悤�ȍ��ʍ����c�[�������������ō���Ă���l�����܂��B�Ⴆ��JavaScript�x�[�X�̍��ʍ����c�[���ł��B�n�[�h�E�F�A�ƃ\�t�g�E�F�A�̗�����m���Ă���l���炷��ƁAC�^C++�͍�������ł͂Ȃ��̂ŁAPython��TensorFlow�̂悤�ȃh���C���X�y�V�t�B�b�N�Ȃ��̂��g�������Ƃ�������͋N���Ă���Ǝv���܂��B

���[�A�̖@���̏I���ɔ����AFPGA�̏o�Ԃ�������

����2015�N�Ɉ��������A2016�N��1�N�ԂŌ��Ă��AFPGA�֘A�Ŗڗ��“���������܂����BAmazon Web Services�̃N���E�h��FPGA���T�|�[�g�����uF1�C���X�^���X�v���o�ꂵ����AIntel���A��������FPGA�x���_�[Altera�Ɛ��i�̓�����i�߂���A�~���N���E���i�b�N�X��FPGA�ŕ����񕪊��������ő�10�{����������t���[�����[�N���J��������A�������쏊��FPGA�𗘗p���ăf�[�^���͑��x���ő�100�{�ɍ���������Z�p���J�������Ɣ��\�����肵�Ă��܂��B

�����@���[�A�̖@�����I���ACPU�����ł͂���ȏ�̋}���ȍ��������]�߂Ȃ�����ł��B���𑬂������ɂ͐�p�n�[�h�E�F�A���K�v�ɂȂ��Ă��܂��B������A�@�B�w�K��Í����̂悤�ɃA�v���P�[�V�������ƂɈႤ�n�[�h�E�F�A���o�Ă���B

�_���@�č��ł̓r�f�I�X�g���[�~���O���嗬�ɂȂ��Ă��āA1�‚̃R���e���c���g�ѓd�b�Ō�����A�ƒ�ɂ���4K�e���r�Ō����肵�܂��B�����Ń��A���^�C���ŃX�g���[�~���O�����Ȃ���A���ꂼ��œK�������T�C�Y�ʼnf���𑗂�o���B���̂��߂ɁA����𑜓x�Ŏ��O�Ɉ��k���Ă����̂ł͂Ȃ��A���A���^�C���̈��k�i�G���R�[�f�B���O�j�����߂��Ă��āA�����ŃT�[�o�T�C�h��FPGA�ȂǂŐ�p�n�[�h�E�F�A�𗘗p����l�������o�Ă��Ă��܂��B

��������AFPGA�͍ŒZ���ԂŃn�[�h�E�F�A������@�Ƃ̈ʒu�t���ɂȂ�Ǝv���܂����A���������A�Z�����Ԃō��Ȃ��Ƃ����Ȃ��w�i�ɂ‚��Ă������Ă��������B

�����@�l�H�m�\�A�@�B�w�K�^�f�B�[�v���[�j���O�̕���ł̓A���S���Y�������i�����ő����ҏ����̃��b�h�I�[�V�����ɂȂ��Ă��܂��B�������A�_���������Ă����s�����܂Ŕ��N�͂����邽�߁A�w��ɓ��e����O��Web�̃A�[�J�C�u�ɏグ�ď؋����c���悤�ȏ󋵂ɂȂ��Ă��܂��B������Web�ɍڂ���ƁA���̃A���S���Y�����u�]�������v�u���P�����v�Ƃ����񍐂�������ɗ���B�����������x���ł��BFPGA�̎�v�ȍ��ۉ�c���N��4��ŁA3�J���ŐV������@����ǎ�@���o�ė���B

�����@������FPGA�̏d�v�ȂƂ���ł��BASIC���ƃ��X�N���傫���i��1�j�BASIC�͍���ē������̂�1�N�����邯�ǁAFPGA�������疾������g���܂��B���[�A�̖@�����L������������̔��z�̂܂܂ł͋����ɕ����Ă��܂��B�n�[�h�E�F�A�ɂ����񉻂̉��b�𐶂����Ȃ��ƁB

��1�FASIC�́A��p��H�Ȃ̂�FPGA��荂���ɓ��삷�邪�A�݌v�Ɛ����ɂ����鎞�ԂƃR�X�g�͖c��ɂȂ�

�����@�f�B�[�v���[�j���O�ł����΁ADNN�iDeep Neural Network�j�͔F�����x���}�����č����ł����A���̑㏞�Ƃ��Ă͌v�Z�ʂ��傫���Ȃ�B�Ϙa���Z�A���ɏ�Z�����Ⴂ�ɑ����B�g�ݍ��݋@��Ŏg���ꍇ�̓��A���^�C�������d�v�ɂȂ�܂��B�K���Ȃ��ƂɁA�f�B�[�v���[�j���O�Ŏg���s��v�Z�͍s��̍s���ƁA�񂲂ƂɓƗ��Ɍv�Z�ł���̂ŁA����v�Z�ł���悤�Ƀp�X��݌v�ł��܂��BGPU�̓p�X���Œ�ł��BFPGA�͏_��Ƀp�X������ĕ���ɕ��ׂ邱�Ƃ��ł���Ƃ��낪�AGPU�ɂ͂Ȃ����͂ł��B�܂��A���Z���x���J�X�^���ɂł���̂��傫���B

�@GPU�̎�_��1�‚ɂ́Aif�������Ȃ��Ƃ�����܂��BFPGA���g���l�̓A�[�L�e�N�`���������ō���B�Ⴆ�΁Aif���̍��������K�v�Ȃ�}���`�v���N�T����ׂ�B�Ⴆ�΁A�i�@�B�w�K�̃A���S���Y����1�‚ł���j�u�����_���t�H���X�g�@�v��GPU���Ɛ��\���o�܂��񂪁AFPGA��if������ׂ���H������̂ō����\�ɂł��܂��B

�����@����͂������ł��ˁI

�����@GPU���ƃX�P�[�����Ȃ���ł��BFPGA����if���̂��������A���o�����X�ɂȂ�܂����A���܂��B����͂����̊w����2017�N1���ɔ��\�������e�ł��B

�����@�ڂ�ڂ₵�Ă���ƒu���Ă������Ƃ�����@������o����b�ł��ˁB�ł����N���N���܂��B

�����@���݂͍������̑��̕��@���T���Ă���Ƃ���ł��B1�‚́A���܂�2�����‚܂�A�c���Ń��C�A�E�g���Ă��������̃`�b�v���A3�����A�‚܂荂���̕����ɂ����C�A�E�g�ł��Ȃ����Ƃ������ƁB�Ⴆ�Όc��`�m��w�̍��c�搶�̓`�b�v���̃g�����W�X�^���X�^�b�L���O�i�ϑw�W�ρj���錤�������Ă��܂��B�ۑ�͊�‚������āA�`�b�v���̒ʐM���ǂ����邩�A�ǂꂾ���`�b�v���ψ�ɔ����ł��邩�A����ɔM���ǂ����������B�ʐM�ɂ‚��Ă͖����ʐM�ł��������Ȍ��ʂ��ł���Ǝf���Ă��܂��B

FPGA�Ŏ�y�ɗV�ׂ邱�Ƃ��A���͏d�v

�����ꌛ���iIT��ƋΖ��A�uFPGA�G�N�X�g���[���E�R���s���[�e�B���O�v��Ɂj

�����@�l�I�Ȉӌ��ł����AFPGA�Œ��ڂ��������Ƃ��傫��2�‚���܂��B1�‚́A���w�E�̂悤�Ƀr�W�l�X�̊ϓ_���猩��FPGA���ʔ����󋵂��Ƃ������ƁB�����Ă���1�‚́A�z�r�[�Ƃ��Ă��ʔ����Ƃ������Ƃł��B

�@�̂́A�d�q��H��g�ނɂ́g�͂񂾁h�t�������Ȃ��Ƃ����Ȃ����A�z����g�͂񂾁h�t���̂������ԈႦ��Ƃ������Ă��܂����BTTL�iTransistor Transistor Logic�j�Ř_����H��g��ŁuL�`�J�v�iLED�_���j�����邾���ő�ςł����BFPGA�Ȃ�A�\�t�g�E�F�A�I�ȍč\���ŊȒP�Ƀf�W�^����H��g��ʼn��Z�@��g�ݗ��Ă�CPU�����܂ł��g�͂񂾁h�t���Ȃ��łł��܂��B

�@�q�ǂ��̍��Ɂu�d�q�u���b�N�v��e�ɔ����Ă�������̂ł����A����͒l�i�ɔ�Ⴕ�ĕ��i�̐����������ł��B�Ƃ��낪FPGA���ƃ��W�b�N�Z���̐������Ⴂ�ɑ����B1���~�o����1���Q�[�g�A2���Q�[�g�̐��i��������B����Ȃ�CPU����ꂿ�Ⴄ�B�Q�[�g���������ƁA���ʍ����őg�߂��H�̕����L����܂��B

�@���\�N���O�̃R���s���[�^�A�[�L�e�N�`���̐��E�́ARISC�iReduced Instruction Set Computer�j��CISC�iComplex Instruction Set Computer�j�̘_��������Ȃǂ��ʔ��������B���̌�A���̒���Intel�`�b�v�Ɏ��������̂ŁA�z�r�C�X�g�ɂƂ��Ă̓R���s���[�^�A�[�L�e�N�`���Ɏv�����ꂪ�����Ă��ǂ��ɂ��ł��Ȃ��B�Ƃ��낪FPGA���ƁA�Ⴆ��Smalltalk����̃o�C�g�R�[�h�����s����v���Z�b�T��A���\�‚����Z�킪����v���Z�b�T���A��낤�Ǝv���΍���B���N���N������݂����銴�������܂��B

�@�ŋߗ��s�������t�Łu�j��I�C�m�x�[�V�����v�Ƃ����̂�����܂����A�j��I�C�m�x�[�V�����͍ŏ��̓I���`���ɂ��������Ȃ���ł��B�u�I���`���݂����ɗV�ׂ�FPGA����A�Ƃ�ł��Ȃ��C�m�x�[�e�B�u�Ȃ��̂��o�Ă���񂶂�Ȃ����ȁv�Ɗ��҂��Ă��܂��B

�����z�r�[����C�m�x�[�V���������܂ꂽ��ɂ́A�p�[�\�i���R���s���[�^�iPC�j������܂����BFPGA�ɑ吨�̐l���z�r�[�̂悤�Ɏ��g�ނ��ƂŁA���ƂɂƂ��Ă��\�z�O�̂��̂��o�ė���”\��������܂��ˁB

�_���@�x���_�[�̗��ꂩ��́uFPGA�Ƃ����΃n�[�h�����񂪐G����́v�Ƃ������E�����яo���āA�\�t�g�E�F�A�G���W�j�A���͂��߁A���푽�l�ȃ^�C�v�̃G���W�j�A���u�c�[����1�v�Ƃ��Ďg���Ă��炦����̂ɂȂ�Ƃ����ȂƎv���Ă��܂��B���[�U�[�O���[�v�����Ƃ��ăR�~���j�e�B�[���o���オ��‚‚���܂��B

�I�[�v���\�[�X���x����SoC���ڕ]���p�{�[�hPYNQ

�����z�r�C�X�g��\�t�g�E�F�A�G���W�j�A�����̃{�[�h�Ƃ��āA�����搶�Ɏ��Q���Ă����������A�uPYNQ�iPython Productivity for Zynq�j�v������Ǝv���܂��B����ɂ‚��āA�ȒP�ɐ��������肢�ł��܂����H

��������PYNQ-Z1�{�[�h

�_���@FPGA�֘A���i�ɂ́A�܂�FPGA�������ڂ��Ă���^�C�v�̃f�o�C�X�ƁAARM�R�A��CPU�Ǝ��Ӊ�H���ꏏ�ɍڂ��Ă���f�o�C�X������܂��B��҂�SoC�iSystem on Chip�j�^�C�v�Ƃ����܂��BPYNQ�́ASoC�^�C�v�́uZynq�v�𓋍ڂ��āAPython�Ƃ��̃��C�u�����ŁACPU��FPGA���v���O���~���O�ł���悤�ɂ����]���p�{�[�h�ł��BCPU�Ń\�t�g�E�F�A�𓮂����āA�u���̃��W�b�N�͂��Ѓn�[�h�E�F�A�ɗ��Ƃ������v�Ƃ�������������FPGA�ɗ��Ƃ��đg�ݍ��킹�邱�Ƃ��ł��܂��B

�@����1�APYNQ�̓I�[�v���\�[�X�̃v���W�F�N�g�ł��B����̗���Ƃ��āA�u���낢��ȃ^�C�v�̃G���W�j�A���Q���ł���`�̃I�[�v���\�[�X�ō���Ă��������v�Ƃ����v��������܂��B

�����@FPGA�ʼn����C�̗��������Ƃ���点��ɂ́A�\�t�g�E�F�A�ƃn�[�h�E�F�A�̗��������Ȃ��Ƃ����܂���BC�̊J���‹���ARM�p�R���p�C���Ȃǂ��[�����炻�낦�Ďg�������}�X�^�[����͎̂�Ԃ��|����܂��B���̓_�APYNQ�́A�����������i�g���Ă���Python�J���‹����g����4�`5�s���R�[�h�������΁A����FPGA�̃��W�b�N�ƘA�g���Ďg�����Ⴄ�B�������������B

�����@PYNQ�́u�A�J�f�~�b�N�����ɂ�65�h���v�i��ʌ�����229�h���j�Ƃ����l�i�͈����ł��ˁB1���~�𒴂���ƐS���I�Ɏ肪�o���ɂ����B�uRasPi���o�v�Ŏg���܂��i��2�j�B�����Arduino�̃V�[���h���h����̂ŁAArduino�̃G�R�V�X�e�����g����̂������ł��ˁi��3�j�B

��2�FRasPi�iRaspberry Pi�j��ARM�`�b�v���ڂ�Linux�������ቿ�i�������^�{�[�h�Ƃ��Đl�C

��3�FArduino�̓��f�B�A�A�[�g��Maker���[�u�����g�Ȃǂ̕���Ől�C�̐���p�{�[�h�ŁA�V�[���h�͏��^�̉�H��‚�Arduino�̃��C���{�[�h��̃R�l�N�^�Őڑ����ċ@�\���g���ł��鐻�i�Q�B���o�͂�Z���T�[�֘A�̕i�������L�x

�@��w�̃[�~�ł�PYNQ�͎g���Ă��܂��āA���������̏�œ�������f�����ł��܂��B�v���O���~���O���Ȃ��炻�̌����ƂȂ鐔����ǂ����ł���B�܂��A�����ł́iLinux�f�B�X�g���r���[�V�����́jUbuntu�������Ă��܂��B

�����@�����Ȃ�Linux�������̂͂��ꂵ���ł���ˁI

�����@�����ŁAJupyter Notebook�o�R��FPGA���g���܂��i��4�j�B

��4�FJupyter Notebook��Web�u���E�U�x�[�X�Ŏ�y�Ɏg���鑽�@�\��Python�R�[�h���s�‹��i�Q�l�j

�����@Jupyter Notebook���܂����ꂵ����ł��B�h�L�������g�ƃ\�[�X�R�[�h����̉����Ă��āB

���������搶�A���ۂ�Jupyter Notebook��PYNQ���g�����f���������Ă��������܂����H

Jupyter Notebook��PYNQ���g�����f��1�i�A�g�J�n�j
Jupyter Notebook��PYNQ���g�����f��2�i�u5�v�Ƃ��������������ꂽ�摜��F�����Ă���j

�����@�����2016�N12���ɒ����̍��ۉ�cFPT 2016�Ŕ�I�����f���Ȃ�ł����A���ڂ𗁂т�2���Ԃقǃ��C���C�Ǝ��^�����Ă��܂����B�|�X�^�[�Z�b�V�����̒��Ńs���N�F�̃{�[�h���o���Ă����̂��ڗ������i�΁j�B5�w��CNN�iConvolutional Neural Net�j�������Ă��܂��āAPython�R�[�h�̒��ł�����ƃp�b�P�[�W���C���|�[�g���āA�Ԓn�����������B2�s��3�s�œ������܂��B

Jupyter Notebook��PYNQ���g�����f��3�iPython�R�[�h�j

�����@�����ŋ����������̂��A�n�[�h�E�F�A�‚܂�FPGA�����l�ƁA�\�t�g�E�F�A�����l�̋��Ƃ��������ȒP�ɂȂ�Ƃ������Ƃł��B�\�t�g�E�F�A�̐l���r�b�g�X�g���[���iFPGA���R���t�B�M�����[�V�������邽�߂̃f�[�^�j���ق�̐��s�̃R�[�h�œǂݍ��߂�B

�����@�uPC��FPGA�̊ԂŃf�[�^���A�ǂ����Ƃ肷��̂��v�Ƃ������₪�悭���܂��B�]���́A��������ǂɂȂ��Ă��܂������APYNQ�̏ꍇ��Ubuntu�������Ă���̂ŁA�R���t�B�M�����[�V�����f�[�^�͉��z�n�[�h�f�B�X�N�ɑ���A�F���p�f�[�^��AXI�iAdvanced eXtensible Interface�j�o�X��ʂ���ARM�v���Z�b�T���瑗�邾���ł��B����CNN�Ŗ�95���̔F�������o�Ă��܂��B

Jupyter Notebook��PYNQ���g�����f��4�i����d�́j

�@����ƁAPYNQ�����o�C���o�b�e���[�œ������āA�d�͌v�̕\�������Ă�����āAFPGA��DNN�𓮂����Ə���d�͂����Ȃ��Ƃ����f�������܂����B

�����@�d�͏���́H

�����@���A��5V�~0.5A��250mW���炢�ł��B

�����@RasPi�ł�����3�`4W���炢�ł���ˁB

�����@�d�͑ΐ��\��Ƃ����ϓ_�ōl����ƁACPU��GPU��DNN��������������ɔ�ׂĐ��S�{�̍�������܂��B

�����@���ʂ̃h���[������RasPi��GPU���ڂ���̂��������ł����A����Ȃ�ڂ����܂��B5�w��DNN�Ȃ̂ŁA�Ⴆ�΁u�l�̊炩�A�L�̊炩����������v�F���Ȃ�y���ł��܂��B���\�ʂł��A�Ⴆ��RasPi���80�{���炢�͑����ł���B

�����@����̖ʔ����Ƃ���́AARM�R�A��Ubuntu�������Ă���ԂɁAFPGA�̏����������ł��邱�Ƃł��B���[�U�[���ƂɈႤ��H�������g�������”\�ɂȂ�܂��B

�����@���z���݂������B

�����@������ӎ������Ȃ��悤�ȃt���[�����[�N���o�Ă���Ƃ����ł��ˁB

�\�t�g�E�F�A�G���W�j�A��FPGA�Ɏ��g�ލۂ̉ۑ�

����PYNQ�̂悤�ȃc�[�����o�Ă��Ă͂��܂����A�\�t�g�E�F�A�G���W�j�A�ɂƂ��āA�܂��܂��n�[�h���A�ۑ肪����Ǝv���܂��B��̓I�ɂ́A�ǂ̂悤�Ȃ��Ƃ��ۑ�ɂȂ��Ă����̂ł��傤���H

�����@�\�t�g�E�F�A�̕���ł͌���I�ȋ��ȏ����������񂠂�܂����AFPGA�̕���ł͂܂��o�Ă��܂���B�Ɗw����ꍇ�̃n�[�h�����܂������̂ŁA�����������Ȃ��Ƃ����܂���B�w�p���ł����ǁA2017�N�ɂ́wFPGA�̌����ƍ\���x��2�Łi�I�[���Њ��j���o�܂��B�c�[���̖{�͂��Ȃ�[�����Ă��܂������A���ʍ����̖{���~�����ł��ˁB

�_���@2017�N�t���ɂ́A�U�C�����N�X�̃G���W�j�A�����M�Ɋւ���Ă��鍂�ʍ����̖{���o�܂��B

�����@�]���̍��ʍ����c�[���͍����ł������AVivado HLS�͖����ł��B���Ђ��o�Ă���Ƃ���ɂ����ł��ˁB�Z�p���y�̈Ӗ��ŁA�ቿ�i�{�[�h�△���c�[���A����ɏ��Ђɂ͈Ӗ�������܂��B

�����@����1�APYNQ�Ȃǂ��g���Ə������R�[�h�̓n�[�h�E�F�A�ɗ��Ƃ��܂����A���ꂪ�����\�ɂȂ邩�ǂ����Ƃ����ƁA�H�v���K�v�ł��BFPGA���悭�������ăR�[�h�������Ȃ��Ɛ��\���o�܂���B�Ⴆ��FPGA�`�b�v��̃������ɃA�N�Z�X����̂͂����ł����A���C���������ւ̃A�N�Z�X�𑽗p����ƁA�����̓o���h�����x���̂ŁA�S�̓I�ɂ��x���Ȃ��Ă��܂������ɂȂ�܂��B���������ˑ������Ȃ��A�Ȃ��Ȃ��R�[�h�������Ƃ��낪1�‚̃n�[�h���ɂȂ�܂��B

�����@FPGA���g�����Ȃ��X�L����g�ɕt�������ŁA�A�v���P�[�V�����̍�������@�́AFPGA�ȊO�ɂ�����܂���ˁB�ʏ��CPU�ɂ����񏈗�������SIMD�iSingle Instruction Multiple Data�j���߁AMIMD�iMultiple Instruction Multiple Data�j���߂����邵�AGPU�ō������������������BFPGA�ACPU�AGPU��3�ʂ�̎�@�̍œK���������ł��āA���̏�Łu��ԗǂ��̂�FPGA���v�ƕ]���ł���l�͂��������Ă��܂��B�z�r�C�X�g�̃��x���ƁA�d���Ŏg�����x���̊Ԃɂ���ǂł��ˁB

�����d���Ŏg���Ƃ����ƁA�G���^�[�v���C�Y����ł̗��p����ɂ͂ǂ̂悤�Ȃ��̂�����̂ł��傤���H

�����@�G���^�[�v���C�Y�̕���ł́AIBM��Netezza�e�N�m���W�[�����p��ł��B�f�[�^�E�F�A�n�E�X�����̃n�[�h�E�F�A���i�ŁA�����ł�FPGA���g���Ă��܂��B

�@�u�f�[�^�x�[�X�Ǘ��V�X�e���ł́A�N�G���̏����ɂ�CPU�T�C�N����6�������g���Ă��Ȃ��v�Ƃ����f�[�^�������āA����ȊO�̏������n�[�h�E�F�A�Ŏ��s�ł���Ə������\��d�͌������ς��͂��ł��B

�����@���Z����ł́AFPGA��NIC�iNetwork Interface Card�j�𒼌����č��p�x����iHFT�j�Ɏg�����v������܂��BHDL��������ƁA������3�{���炢�ɂȂ邻���ł��B

�_���@�uFinTech�v�Ƃ����镪��ł��ˁB�ŋ߂́A�f�[�^�T�C�G���e�B�X�g�̍����������A���S���Y�����G���W�j�A���������ăR�[�h�ɗ��Ƃ����ގ��v�����������ł��B���ϕ����܂ސ������Afor�����g�����R�[�h�ɂ���Ƃ��B���Z�H�w�ȊO�ł��r�b�O�f�[�^���͂̐��E�ł́A�A���S���Y�����n�[�h�E�F�A�ɂ܂ŗ��Ƃ����߂闝��͂̂���G���W�j�A�����߂��Ă��܂��B

�����@���{�ɂ�HDL��������l���������񂢂܂����A����ɉp��Ƌ��Z�n�̃X�L����������΁A�������啝�ɑ�����l���o�Ă���ł��傤�ˁB

�������肪�Ƃ��������܂����B

Copyright © ITmedia, Inc. All Rights Reserved.


�񋟁F�U�C�����N�X�������
�A�C�e�B���f�B�A�c�Ɗ��^����F��IT �ҏW���^�f�ړ��e�L�������F2017�N3��1��

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B