�༭�ƽ�: |
�����ص�������㣺һ���ǻ���fpga���칹�����һ�������⣬��һ������fpga���칹���㷽�����в�����ϣ��������ѧϰ����������
�������������������ɻ���������alice�༭�ƽ��� |
|
1. �ŷӽ���
���ݼ���ƽ�������2016�꣬ӣ����ctaccel��ʵ���������ŷӵ�2014��Ϳ�ʼ�о�������ˣ���ҫ��������fpgaϊ������������ĵ��칹���㣬�����ܰ������ǽ��һщʵ�ʵ����⡣
2. ����
�������������������㣬һ���ǻ���fpga���칹�����һ�������⣬��һ�����������ŷӣ�ctaccel������fpga���칹���㷽����
2.1 ����fpga���칹�����һ��������

����fpga���칹�����һ�������⣬������ǵ���ʶ�����������������˵��
2.1.1 ��ǰ����������

��ͼ�����������2016��amd������һ�����档intel����ֹͣcpu��tick-tock��չģʽ��moore���ɵ�ʧч��ζ��cpu���ܵ���������֮ǰ18����ϊһ���ڵ��ٶȡ��������ݼ�����������ȴխ��խ�죬�լ��������խ��խ�ࡣ��щ���������ý��ת�룬�������㣬�ӽ����լ�����ļ��㡣���ڼ�������խ��խ����ҫ�µĵײ�ӳ����֧�ִ��ģ���㡣

��ͼ������������ʹ洢�����ļ�����չ�����������ڲ������ٶ�խ��խ�죬�������1gbps������100gbps���洢�ٶ�ҳ�ӻ�еӳ�̵�0.7mb/s�ӿ쵽��̬��������1gb������cpu����io���ٶ�û����ô�죬����aes256���ܺ�sha-1ǩ���������ʹ�õ���cpu��������������ֻ��100mb/s����洢�ٶ�֮����ںܴ�ij�ࡣ������ľƕ��������������·э������ҫ��cpu����ҳ�ǻܴ�ģ�cpu�����ٶ��dz���ƥ�����紦���ٶȵġ������ӳ�������������⣬fpga�����ṩһщ������
2.1.2 fpga������ʷ

��ͳ��fpga�������ͼ����ʾ��ʵ���ǰѵ�·����һщс���ŵ�·����װ��оƭ��ͨ���ı��������ı����ĺ��ܣ������ֳ��ɱ������������ʵ��һ���붨�ƻ�ר�ü��ɵ�·�������ѿ���һщ�����ŵ�·��ҳ����һщ���������լ�������դ��ͨ���ı���щ������դ���ŵ�·�������������ӷ�ʽ���ı书�ܣ������Ϳ���ʵ�����������˲���������任�ȼ������ܡ����ڵ�fpga���֮ǰ�ѿ������˾�ĸı䡣֮ǰֻ���ŵ�·����������������դ���������������ѿ������˱ƚϸ߲�һ��ĺ���ģ�飬��������dsp��bram����������ddr��������pcie��������serdes����ڣ��լ�arm��powerpc��gpu��ϵͳ���ĵ�Ԫ��

��30�����ʱ���fpga�������ĸ���չ�σ���1984������˼����fpga��1991�����ʱ�����ҫ��չ������оƭ�������ŀ�������࣬��ҫ�������������������·�ĺ�ģ����1992�굽1999����fpga�����žσ���һ����ȼ��̽�������·��ģ�ķ��������ڵ�ʱоƭ��ģ��ȼ��с��ϊʵ�ָ��ӹ��ܣ���һ�ν������һ���������ͨ����������оƭ��ĺ��ܷ��ρ��������ǵ�2000�굽2007�꣬��ʱfpga�ĺ�ģ�ѿ���խθ���һ����ҫ������������źŵ�����������⣬���������ի�����դ�ij��ֲ��ߣ���γ�����þ���ܵ����⡣��2008�꿪ʼ���뵽fpga��ת�ͽσ���һ�β��������ɱ������������ethernet
mac��pci express�լ�һщ���ٽӿڡ�����������������gpu�������������Ԫ��fpga�ڳ���ϵͳ������չ����ģխ��խ��ϊ������ṩ��ײ�ļ����������ڲ��ϸ�չ�ĺ����у�fpga�ĺ���խ��խс������խ��խ���ٶ�ҳխ��խ�죬��ҳ�������ڿ��������������ĵļ���������
2.1.3 ����fpga���칹������ص�

cpu��gpu���������÷�ŵ�����ܹ���������ɲ�������ָ��洢�����ݴ洢������������������Ԫ�լ������ڴ档���ĺ���ԭ���ǽ�ȡ�õ�ָ������ݽ���ָ�����룬ȼ��ִ�з��ؽ����
cpu��gpu���ǵ��͵ĵ�ָ������ݵ�ģ�͡�cpu��alu�������ޣ�����֧�ָ��ӵŀ���������ӧ�ļ�������ҳ�θ���gpu�у���������Ԫ�϶࣬���ǿ���ɵŀ���������٣���ӧ��������ҳ���ޡ����߽�������ⲻͬ�������ǵ���сִ�е�Ԫ����ָ���̵ı��ʾ��ǽ��㷨��ҵ�������ϊ˳��ִ�е�ָ��ĺ��̡�

����fpga��������������ָ��ܹ�������ֻ�ṩ�����ء���ɲ�������clb���ɱ������Ԫ����bram��dsp��Ԫ��pcie��������ʱ�ӵ�Ԫ�������շ����ȡ�����ͨ����ƣ�������щ����ʵ�ֲ�ͬ���ܡ���������ҳ�ɸ���ӧ�ö��ơ��ӽ���ľƕ�������������֧�ֵ����������ݣ���ϊ������ҫ���룬��ҳ������ָ��ĸ��ͬʱ��ҳ֧�ֵ����ݶ�������ɶ�ͬһ���ݶ�β�����fpga����сִ�е�λ�ǽĵ�������������Ԫ��fpga��̵ı����ǽ��㷨��ҵ����ӳ�䵽fpga��������������cpuҳ�dz�ͬ�ġ�

����fpga�ļ�����̣������cpu/gpu���ŵ㣺
1����ʱ���ȶ���ǿ
fpga�ɶ��ƶ����������ݡ������ݶ�����լ����ģ�ͣ����γɸ�ϸ���ȵij�������ˮ�ͳ��с�����������������·���̶��������ӳ�ҳ�ǹ̶��ġ���ˣ������е���ʱǿ�ȶ����ŵ㡣
2�����ĵ�
�����ȫ�������㷨��ҵ�����������٣������ʸ��ߡ�
3�������ȸ�
����fpga��оƭ��դ���㹻���ʋ��к�˳��ִ��֮��ƽ��ġ���fpga��ӧ�õ�Ԫ��cpu��gpu��ч�����ú����൱ʱ��������ʱ���ͣ�����fpga�����ȸ��ߡ�
4��io��դ�ḻ
fpga�и��ٽӿڣ�����������ڡ���̫���ӿڣ�����֧�ſ����ӿڵļ��㡣

���潫��������ı����ԭ����˵��fpga�ʺ�ͼ������ԭ����ͼ��������ƶ����ĺ��̡����ƚ���ƶ����ϊ��ͬ���뵥Ԫ��ȼ���ÿ����Ԫ���б��룬�ⱦ����任ȼ�����������֮����з��������仯���õ��ع��������ٺ�ԭ���ݽ���Ԥ����룬�������ijв����ݽ����ر��롣���ܵ�Ԫ�ļ��ֺ�ÿ����Ԫ�ĵ����ǵ��еĺ��̣����������̵�Ԥ�⡢�任���������ǿ���˵ĺ��̣����dz��й��̣��ر���ҳ�ǵ��еġ���������ǵ��в������ϵģ�cpu��gpu����֧��������̣�fpga�п��ɲ�ͬ��·��ɡ�

��ʵ��������������ͼ��״ͼչʾ��jpegͼѹ����һ����сʱ��fpga��gpu��ʽ��qpsֵ�ĵ�с�����կ����������ں�������£�fpga�����˵����һ�����ƶġ�����������դ�����ĵײ㼼���ܹ���
2.1.4 fpga�칹�����ϵͳ������

fpga���դ���һ�����ƣ�����ȼ����������ҫ��������⡣�ڵ��������ϣ����кܴ�����ƣ����ǵ�ϵͳӧ���������������ƻ����ۿۣ���ϊ���кܶ�ϵͳ����������
�㷨��ҵ������fpgaӳ���ϻ�������ż��գ�����������ˮ���벢�с�
���ٿ��ϵ���դ����դ������⣬��ͼ����ƶ����볣��ҫʹ���ⲿ���棬�����������������������ҫ��֮ƥ��ģ����ݴ�����ӳ�ҳ������ܲ���ӱ�졣ͬʱ�����㷨��ҫʹ�÷dz���������ƭ�ڿ黺�档
fpga��ϵͳ�������դ��ȣ�host������ҳ�����һ����ч�����⡣����������û���֪������£���ϵͳ״̬���м�أ�����������������ҫ��������⡣ϊ��ӧ����������ҫ��������֧�ֺ�docker����������⡣
�ӳ�ʒ��������ϵͳ��fpga�칹����������ssd�������칹ƽ̨֮���ܷ�p2p�������ݣ���ϵͳ����чҳ����ҫ���ǵġ�fpga��host֮���ܷ���ч��������ҳ�������о���һ���֣�����ҳ�����˲�ͬ�ļ�����
2.1.5 fpga�칹����ŀ������̺ͷ���ѧ

��ͼչʾ���칹ϵͳ���������̡���ͼչ���˴�ͳfpga�ŀ������̣����կ�����оƭ�ŀ�������������ģ�������ӳ��������������ҫ����ת���ĺ��̣�����ҫ������·�ƿ�����ҫ��ҫ�����桢���ԡ��ż��������ܵõ�����ҫ�����ƽ��а弶���ԡ�ϊ�������������ĵŀ�����ص�����fpga��ҫ�õ����߲�ĺ��ߺͱ�����ԡ�

���˹��ߡ��������̣�ƽ̨ҳ��һ�����档�����ǵŀ����у��й̶���hdk��sdk�����ṩ��ӧ�ľӿڲ�������������hdk��ļ�ؽӿڡ�������������ڹ��ܵ���ơ�
�ӳ�ʒ�ľƕƚ���������ҫ�������ݿ��á��ӿڿ��á�ϵͳ�ȶ����á�ǩ�ƴɱ��͡����������ά�ȡ�ӧ��ҫ���ṩ�㹻��ľӿڶխ�ԭ�е�������̬��ϵͳ�ȶ���������ģ��ܷ�һ��������һ������ҳ����ҫ���ǵġ�����ǩ�ƴɱ������ľӿڶ��û����̵�ӱ�죬�˶զ������������ȷ��ϵͳ���ܵ���������������ָ�����������������£�������ʱ��������ʱ����cpu�����ʵȡ���������ʵ�ֹ���ʱ�����ſ�֮��ĵ��ȡ������з֣��լ�ʹ�öʱ�����ƿ�����������������ҫ�����ġ�
2.2 ctaccel����fpga���칹���㷽��

���������ҽ�һ���������̸����һ�����⣬�����ŷ������ķ�������ȼ�ǿ���ӧ�ã�����������υ������֮ǰ���������⡣�����ŀǰ��ҫ��ʒ����ʒ��̬����ý��ͼ��ĵ���������ƶ��ƶ�լ�ŀǰ�����ӧ�õ�����ĸ����������
2.2.1 ctaccel��ҫ��ʒ�ͳ�ʒ��̬

ŀǰ��ctaccel��ҫ�������ʒ��һ������ͼ������һ��������ƶ����ʒ��ƶ���ҫŀ����ϊ�������������ܣ�����û����顣��ʡ�ͻ�ͷ��ҳ�����dz�ʒ���ŵ�֮һ��

���ǵij�ʒ��������̬��һ���ǻ���ӳ������̬�ġ�������ҫ������˽�в������ڿͻ����լ����������ļ����լ��ķ�������������ͻ��������й���ӳ��������������������ǵ�������װ�ڿ��ͼͿ���ʹ�����ǵij�ʒ����һ���ǻ��ڹ����ƶġ����ǵij�ʒ����֧�ֲ�ͬ����ƽ̨��
2.2.2 ctaccel��ͼ��������

ͼ������ҫ���������ܣ��ֱ��ǽ����������ش����������������ش����ϣ�������ҫ�����š���ת���ü���ˮӡ��ȥ��ȴ��������ܿ��դ��е��ã�ҳ����˳����á�������ŀǰ��֧��jpeg��webp��heic����щ��������ѹ�����֮�����ͨ������뻥ת��������������⣬jpegŀǰ������ʵ�ֽ���ʽת�롣lepton��ר����������ѹ���ģ����ɶ�jpeg��ʽ��ͼƭ��һ��ѹ�����ﵽ���õ�ѹ��ч������ҫ���ڴ洢������ջ����֧��opencv��imagemagick��graphicsmagick��lepton�լ�ffmpeg������ŀǰ�������֧��restful
web api������������ҳ����һ��ͼƭ�����������ƹ���ҳο������ҳ��ͼչ�������dz�ʒ�ķֲ�������afu��service&driver�լ�opencv�ƚӿڡ��ͻ�����ֱ�ӵ�������ľӿڣ������ҫweb�ӿڵļ�������ҳ�����ٷ�װһ�㡣

�������˺ܶ�ĺ��ܣ�ҳ�۽��˼�����ҫӧ����������һ����aiԤ��������gpu������ǰ����ҫ��ͼ����н��룬ѹ�����涨�ߴ磬����һщ��һ�����������������⣬����ϣ���ܶ�ͼ�����������θ������ֱ�ӵõ����ա�gpu������ͼƭ��ͼ��ת���ӧ�ã������ָ�ʽͼ����л�ת��ͼ��洢��ҫ��lepton��ʽ��

����ͼչ�������dz�ʒ�ŵ����������ͨ��������٣�������·��ʱ�����̡����ڼ�����դ���ĵ�����⣬ͨ���ż���������ϵͳ�������������կ������洢�ϵ��ŵ������եģ���դѹ����խс��խ��ʡ�ռ䡣

ͨ��ʹ��fpga��Ԥ���������ը��õ���gpuƥ�䣬���õķ���gpu���ܡ�������һщ����i����������ܡ�
jpegת��webp����


jpeg��lepton��ת����



jpegת��jpeg����


heicת��jpeg����



ai��תƥ�����

2.2.3 ctaccel����ƶ��������

��ƶ������������h264��h265�ı���봦���լ�һщ���ش���������֧��ffmpeg��gstreamer��




2.2.4 ���ӧ��
1���ֻ����ӧ��

2��o2oƽ̨���ӧ��

3���罻��վ���ӧ��

4��ֱ��ƽ̨���ӧ�ã������у�

|