Publication: FPGA implementation of a dense optical flow algorithm using altera OpenCL SDK
Institution Authors
Authors
Journal Title
Journal ISSN
Volume Title
Type
Master's thesis
Access
restrictedAccess
Publication Status
Unpublished
Abstract
FPGA acceleration of compute-intensive algorithms is usually not regarded feasible because of the long Verilog or VHDL RTL design efforts they require. Data-parallel algorithms have an alternative platform for acceleration, namely, GPU. Two languages are widely used for GPU programming, CUDA and OpenCL. OpenCL is the choice of many coders due to its portability to most multi-core CPUs and most GPUs. OpenCL SDK for FPGAs and High-Level Synthesis (HLS) in general make FPGA acceleration truly feasible. In data-parallel applications, OpenCL based synthesis is preferred over traditional HLS as it can be seamlessly targeted to both GPUs and FPGAs. This thesis shares our experiences in targeting a demanding optical flow algorithm to a high-end FPGA as well as a high-end GPU using OpenCL. Throughput and power consumption results on both platforms are presented.
Yoğun hesaplama gerektiren algoritmaların FPGA üzerinde geliştirilmesi, gerektirdikleri uzun Verilog veya VHDL RTL tasarım sürelerinden ötürü genellikle çok makul değildir. Paralel hesaplama yapılınabilir algoritmaların hız için alternatif bir platformu vardır: GPU. GPU programlama için CUDA ve OpenCL dilleri yaygın şekilde kullanılmaktadır. OpenCL çoğu çok çekirdekli işlemci ve çoğu GPU'ya taşınabilir olması nedeniyle bir çok programcının seçeneğidir. FPGA'ler için OpenCL SDK ve Yüksek Seviyeli Sentez (YSS) genel olarak FPGA hızlandırmasını gerçekten mümkün kılmaktadır. Paralel programlanabilir uygulamalarda, geleneksel YSS'ye göre OpenCL tabanlı sentez tercih edilir çünkü sonuç hem GPU'ları hem de FPGA'leri sorunsuz bir şekilde hedef alabilir. Bu tezde, yoğun hesaplama gerektiren bir optik akış algoritmasını OpenCL kullanarak yüksek düzey bir GPU'da ve yüksek düzey bir FPGA'de çalıştırarak ulaşılan sonuçlar paylaşılmıştır. Her iki platformda da hız ve güç tüketimi sonuçları sunulmuştur.
Yoğun hesaplama gerektiren algoritmaların FPGA üzerinde geliştirilmesi, gerektirdikleri uzun Verilog veya VHDL RTL tasarım sürelerinden ötürü genellikle çok makul değildir. Paralel hesaplama yapılınabilir algoritmaların hız için alternatif bir platformu vardır: GPU. GPU programlama için CUDA ve OpenCL dilleri yaygın şekilde kullanılmaktadır. OpenCL çoğu çok çekirdekli işlemci ve çoğu GPU'ya taşınabilir olması nedeniyle bir çok programcının seçeneğidir. FPGA'ler için OpenCL SDK ve Yüksek Seviyeli Sentez (YSS) genel olarak FPGA hızlandırmasını gerçekten mümkün kılmaktadır. Paralel programlanabilir uygulamalarda, geleneksel YSS'ye göre OpenCL tabanlı sentez tercih edilir çünkü sonuç hem GPU'ları hem de FPGA'leri sorunsuz bir şekilde hedef alabilir. Bu tezde, yoğun hesaplama gerektiren bir optik akış algoritmasını OpenCL kullanarak yüksek düzey bir GPU'da ve yüksek düzey bir FPGA'de çalıştırarak ulaşılan sonuçlar paylaşılmıştır. Her iki platformda da hız ve güç tüketimi sonuçları sunulmuştur.
Date
2017-08