Acceleration of deep learning algorithms for cardiac ultrasound processing by use of Xilinx FPGA
Abstract
I de siste årene har dyp læring og dype nevrale nettverk utviklet seg som en konsekvens av bedre teknologi i form av bedre plattformer for prosessering og mer tilgjengelige, og større datasett. I takt med at det forskes mer på dyp læring, utvikles det stadig mer komplekse og bedre modeller, hvilket i mange tilfeller betyr dypere modeller med flere lag og vekter. En konsekvens av dette er at propageringen av data gjennom nettverket blir veldig beregningskrevende, og dette fører til lavere utførelseshastighet (eng:throughput), høyere energiforbruk og lengre ventetid (eng:latency). Denne rapporten sammenfatter en implementasjon av en U-net arkitektur på en Xilinx XCZU7EV FPGA ved bruk av 8-bits kvantiserte vekter. Det tiltenkte bruksområdet er segmentering av kardiologiske ultralydbilder. Modellen er trent for ulike bildeoppløsninger for å finne det beste kompromisset mellom nøyaktighet og ytelse. For å kunne sammenligne ytelse og nøyaktighet ble nettverket også implementert på en CPU og en GPU. FPGA-implementeringen gir en maksimal hastighetsøkning på 30x sammenlignet med en Intel Core i7 CPU og en maksimal hastighetsøkning på 2.6x sammenlignet med en Nvidia GeForce GTX 1060 GPU. FPGA-implementeringen oppnår en ventetid på 0.07x sammenlignet med CPUen og en ventetid på 0.64x sammenlignet med GPUen. FPGAimplementeringen bruker kvantiserte 8-bits heltallsvekter, i motsetning til CPUen og GPUen som bruker 32-bits flyttalsvekter. FPGA-implementeringen resulterte i en maksimal reduksjon av nøyaktighet på 1% sammenlignet med flyttalsmodellene, hvor alle modellene optimalisert for de ulike bildeoppløsninger oppnår en Sørensen-Dice koeffisient større enn 89%. In recent years the field of deep learning and deep neural networks (DNNs) has evolved and matured as a consequence of better technology in the form of better processing platforms, and more available and bigger datasets. As more research is put into deep learning, more complex models evolve, very often meaning deeper models with more weights and layers. This, in turn, results in more computationally intensive inference, often resulting in lower throughput, higher power consumption, and higher latency for each computed output. This report outlines the implementation of a U-net architecture on a Xilinx XCZU7EV field programmable gate array (FPGA) using quantized weights of 8 bit. The intended application is segmentation of cardiac ultrasound images. The model was trained on several image resolutions to obtain the best trade-off between accuracy and performance. The network was also implemented on central processing unit (CPU) and graphics processing unit (GPU) for comparison in terms of performance and accuracy. The FPGA implementation yielded a maximum speedup of 30x compared to an Intel Core i7 CPU and a maximum speedup of 2.6x compared to an Nvidia GeForce GTX 1060 GPU. The FPGA achieved a latency of 0.07x compared to the CPU and 0.68x compared to the GPU latency. The FPGA model utilizes quantized 8-bit integer weights, whereas the CPU and GPU uses 32-bit floating-point weights. The FPGA implementations resulted in a maximum accuracy reduction of 1% compared to the floating-point models, with all the models optimized for different resolutions achieving Sørensen-Dice coefficients higher than 89%.