5 research outputs found
Performance engineering for HEVC transform and quantization kernel on GPUs
Continuous growth of video traffic and video services, especially in the field of high resolution and high-quality video content, places heavy demands on video coding and its implementations. High Efficiency Video Coding (HEVC) standard doubles the compression efficiency of its predecessor H.264/AVC at the cost of high computational complexity. To address those computing issues high-performance video processing takes advantage of heterogeneous multiprocessor platforms. In this paper, we present a highly performance-optimized HEVC transform and quantization kernel with all-zero-block (AZB) identification designed for execution on a Graphics Processor Unit (GPU). Performance optimization strategy involved all three aspects of parallel design, exposing as much of the application’s intrinsic parallelism as possible, exploitation of high throughput memory and efficient instruction usage. It combines efficient mapping of transform blocks to thread-blocks and efficient vectorized access patterns to shared memory for all transform sizes supported in the standard. Two different GPUs of the same architecture were used to evaluate proposed implementation. Achieved processing times are 6.03 and 23.94 ms for DCI 4K and 8K Full Format, respectively. Speedup factors compared to CPU, cuBLAS and AVX2 implementations are up to 80, 19 and 4 times respectively. Proposed implementation outperforms previous work 1.22 times
Projektiranje transformacijskih i kvantizacijskih računskih blokova za videokompresiju optimiranih za učinkovito izvođenje na heterogenim višeprocesorskim računalima visokih performanci.
When analysing Internet traffic today it can be found that digital video content prevails. Its domination will continue to grow in the upcoming years and reach 80% of all traffic by 2021. If converted to Internet video minutes per second, this equals about one million video minutes per second. Providing and supporting improved compression capability is therefore expected from video processing devices. This will relieve the pressure on storage systems and communication networks while creating preconditions for further development of video services. Transform and quantization is one of the most compute-intensive parts of modern hybrid video coding systems. Improving the compression capability of this computation block is achieved using complex algorithms at the expense of increasing implementation complexity. Design requirements for higher throughput, reduced communication latency and low power consumption cannot be accomplished using homogenous systems and heterogeneous multiprocessor high performance systems are imposed as a solution. This thesis presents an area efficient reusable architecture for the integer discrete cosine transform and quantization and also highly performance optimized kernel designed for execution on a GPU. In the case of hardware architecture, optimization is based on exploiting the symmetry and subset properties of the transform matrix. The proposed multiply-accumulate architecture is fully pipelined. It provides a two-way interface over which the processing system can control the data path of the transform process and receive the feedback information about utilization from the device. The proposed architecture is implemented on the FPGA platform, that achieves a throughput of 815 Msps and can support encoding of a 4K UHD@30 fps video sequence in real-time. Considering GPU implementation, the performance optimization strategy involved all three aspects of parallel design, exposing as much of the algorithm’s intrinsic parallelism as possible, with the exploitation of high throughput memory and efficient instruction usage. It combined efficient mapping of transform blocks to thread blocks and efficient vectorized access patterns to shared memory for all transform sizes. Two different GPUs were used to evaluate the proposed implementation. Speedup factors compared to CPU, cuBLAS and AVX2 implementations are up to 80, 19 and 4 times respectively.Ako se analizira podatkovni promet na Internetu, vidljivo je da prevladava digitalni videosadržaj. Njegova dominacija bit će još izraženija u slijedećim godinama te se predviđa da će videosadržaj dosegnuti 80% ukupnog podatkovnog prometa do 2021. Ako se ovaj podatak pretvori u Internetske videominute po sekundi prometa, to onda iznosi oko jedan milijun videominuta po sekundi prometa. Od uređaja koji sudjeluju u proizvodnji i obradi videosadržaja očekuje se veća učinkovitost videokompresije. Ona će olakšati pritisak na sustave za pohranu videozapisa i komunikacijske mreže te istovremeno stvoriti preduvjete za daljnji razvoj videousluga. Transformacija i kvantizacija su jedan od računski najintenzivnijih blokova modernih hibridnih sustava za videokodiranje. Povećanje kompresijske učinkovitosti ovog računskog bloka postiže se korištenjem složenih algoritama, nauštrb povećanja složenosti njegove sklopovske ili programske izvedbe. Zahtjevi za većom propusnosti, manjim kašnjenjem i niskom potrošnjom energije ne mogu se ispuniti korištenjem homogenih računalnih sustava pa se heterogeni višeprocesorski računalni sustavi visokih performanci nude kao rješenje. U ovom doktorskom radu predstavljena je arhitektura za cjelobrojnu jednodimenzionalnu diskretnu kosinusnu transformaciju za videokompresiju te jezgrena funkcija za transformaciju i kvantizaciju, optimirana za učinkovito izvođenje na grafičkoj kartici. U slučaju sklopovske arhitekture, optimiranje se temelji na iskorištavanju svojstava transformacijske matrice. Predložena arhitektura tipa pomnoži i pribroji potpuno je protočna. Arhitektura sadrži dvosmjerno sučelje za sinkronizaciju putem kojeg sustav može upravljati podatkovnim stazama transformacijskog procesa i primiti povratnu informaciju o iskoristivosti računskog bloka. Predložena arhitektura izvedena je koristeći FPGA tehnologiju, a ostvarena propusnost iznosi 815 Msps, te se može koristiti za kodiranje videozapisa razlučivosti 4K UHD i brzine osvježavanja slike 30 fps u stvarnom vremenu. U slučaju izvedbe za grafičku karticu, strategija optimiranja uključivala je sva tri aspekta dizajna paralelnog sustava: najveću moguću paralelizaciju samog procesa, iskorištenje raspoloživih visokopropusnih memorija i efikasno korištenje programskih naredbi. Strategija je ostvarena kroz učinkovito mapiranje transformacijskih blokova na blokove dretvi i obrazac učinkovitog vektoriziranog pristupa dijeljenoj memoriji za sve veličine transformacije. Dvije različite grafičke kartice korištene su za evaluaciju predstavljene izvedbe. Faktori ubrzanja u usporedbi sa izvedbama za CPU, AVX2 i cuBLAS dosežu redom vrijednosti 80, 19 i 4
Projektiranje transformacijskih i kvantizacijskih računskih blokova za videokompresiju optimiranih za učinkovito izvođenje na heterogenim višeprocesorskim računalima visokih performanci.
When analysing Internet traffic today it can be found that digital video content prevails. Its domination will continue to grow in the upcoming years and reach 80% of all traffic by 2021. If converted to Internet video minutes per second, this equals about one million video minutes per second. Providing and supporting improved compression capability is therefore expected from video processing devices. This will relieve the pressure on storage systems and communication networks while creating preconditions for further development of video services. Transform and quantization is one of the most compute-intensive parts of modern hybrid video coding systems. Improving the compression capability of this computation block is achieved using complex algorithms at the expense of increasing implementation complexity. Design requirements for higher throughput, reduced communication latency and low power consumption cannot be accomplished using homogenous systems and heterogeneous multiprocessor high performance systems are imposed as a solution. This thesis presents an area efficient reusable architecture for the integer discrete cosine transform and quantization and also highly performance optimized kernel designed for execution on a GPU. In the case of hardware architecture, optimization is based on exploiting the symmetry and subset properties of the transform matrix. The proposed multiply-accumulate architecture is fully pipelined. It provides a two-way interface over which the processing system can control the data path of the transform process and receive the feedback information about utilization from the device. The proposed architecture is implemented on the FPGA platform, that achieves a throughput of 815 Msps and can support encoding of a 4K UHD@30 fps video sequence in real-time. Considering GPU implementation, the performance optimization strategy involved all three aspects of parallel design, exposing as much of the algorithm’s intrinsic parallelism as possible, with the exploitation of high throughput memory and efficient instruction usage. It combined efficient mapping of transform blocks to thread blocks and efficient vectorized access patterns to shared memory for all transform sizes. Two different GPUs were used to evaluate the proposed implementation. Speedup factors compared to CPU, cuBLAS and AVX2 implementations are up to 80, 19 and 4 times respectively.Ako se analizira podatkovni promet na Internetu, vidljivo je da prevladava digitalni videosadržaj. Njegova dominacija bit će još izraženija u slijedećim godinama te se predviđa da će videosadržaj dosegnuti 80% ukupnog podatkovnog prometa do 2021. Ako se ovaj podatak pretvori u Internetske videominute po sekundi prometa, to onda iznosi oko jedan milijun videominuta po sekundi prometa. Od uređaja koji sudjeluju u proizvodnji i obradi videosadržaja očekuje se veća učinkovitost videokompresije. Ona će olakšati pritisak na sustave za pohranu videozapisa i komunikacijske mreže te istovremeno stvoriti preduvjete za daljnji razvoj videousluga. Transformacija i kvantizacija su jedan od računski najintenzivnijih blokova modernih hibridnih sustava za videokodiranje. Povećanje kompresijske učinkovitosti ovog računskog bloka postiže se korištenjem složenih algoritama, nauštrb povećanja složenosti njegove sklopovske ili programske izvedbe. Zahtjevi za većom propusnosti, manjim kašnjenjem i niskom potrošnjom energije ne mogu se ispuniti korištenjem homogenih računalnih sustava pa se heterogeni višeprocesorski računalni sustavi visokih performanci nude kao rješenje. U ovom doktorskom radu predstavljena je arhitektura za cjelobrojnu jednodimenzionalnu diskretnu kosinusnu transformaciju za videokompresiju te jezgrena funkcija za transformaciju i kvantizaciju, optimirana za učinkovito izvođenje na grafičkoj kartici. U slučaju sklopovske arhitekture, optimiranje se temelji na iskorištavanju svojstava transformacijske matrice. Predložena arhitektura tipa pomnoži i pribroji potpuno je protočna. Arhitektura sadrži dvosmjerno sučelje za sinkronizaciju putem kojeg sustav može upravljati podatkovnim stazama transformacijskog procesa i primiti povratnu informaciju o iskoristivosti računskog bloka. Predložena arhitektura izvedena je koristeći FPGA tehnologiju, a ostvarena propusnost iznosi 815 Msps, te se može koristiti za kodiranje videozapisa razlučivosti 4K UHD i brzine osvježavanja slike 30 fps u stvarnom vremenu. U slučaju izvedbe za grafičku karticu, strategija optimiranja uključivala je sva tri aspekta dizajna paralelnog sustava: najveću moguću paralelizaciju samog procesa, iskorištenje raspoloživih visokopropusnih memorija i efikasno korištenje programskih naredbi. Strategija je ostvarena kroz učinkovito mapiranje transformacijskih blokova na blokove dretvi i obrazac učinkovitog vektoriziranog pristupa dijeljenoj memoriji za sve veličine transformacije. Dvije različite grafičke kartice korištene su za evaluaciju predstavljene izvedbe. Faktori ubrzanja u usporedbi sa izvedbama za CPU, AVX2 i cuBLAS dosežu redom vrijednosti 80, 19 i 4
Projektiranje transformacijskih i kvantizacijskih računskih blokova za videokompresiju optimiranih za učinkovito izvođenje na heterogenim višeprocesorskim računalima visokih performanci.
When analysing Internet traffic today it can be found that digital video content prevails. Its domination will continue to grow in the upcoming years and reach 80% of all traffic by 2021. If converted to Internet video minutes per second, this equals about one million video minutes per second. Providing and supporting improved compression capability is therefore expected from video processing devices. This will relieve the pressure on storage systems and communication networks while creating preconditions for further development of video services. Transform and quantization is one of the most compute-intensive parts of modern hybrid video coding systems. Improving the compression capability of this computation block is achieved using complex algorithms at the expense of increasing implementation complexity. Design requirements for higher throughput, reduced communication latency and low power consumption cannot be accomplished using homogenous systems and heterogeneous multiprocessor high performance systems are imposed as a solution. This thesis presents an area efficient reusable architecture for the integer discrete cosine transform and quantization and also highly performance optimized kernel designed for execution on a GPU. In the case of hardware architecture, optimization is based on exploiting the symmetry and subset properties of the transform matrix. The proposed multiply-accumulate architecture is fully pipelined. It provides a two-way interface over which the processing system can control the data path of the transform process and receive the feedback information about utilization from the device. The proposed architecture is implemented on the FPGA platform, that achieves a throughput of 815 Msps and can support encoding of a 4K UHD@30 fps video sequence in real-time. Considering GPU implementation, the performance optimization strategy involved all three aspects of parallel design, exposing as much of the algorithm’s intrinsic parallelism as possible, with the exploitation of high throughput memory and efficient instruction usage. It combined efficient mapping of transform blocks to thread blocks and efficient vectorized access patterns to shared memory for all transform sizes. Two different GPUs were used to evaluate the proposed implementation. Speedup factors compared to CPU, cuBLAS and AVX2 implementations are up to 80, 19 and 4 times respectively.Ako se analizira podatkovni promet na Internetu, vidljivo je da prevladava digitalni videosadržaj. Njegova dominacija bit će još izraženija u slijedećim godinama te se predviđa da će videosadržaj dosegnuti 80% ukupnog podatkovnog prometa do 2021. Ako se ovaj podatak pretvori u Internetske videominute po sekundi prometa, to onda iznosi oko jedan milijun videominuta po sekundi prometa. Od uređaja koji sudjeluju u proizvodnji i obradi videosadržaja očekuje se veća učinkovitost videokompresije. Ona će olakšati pritisak na sustave za pohranu videozapisa i komunikacijske mreže te istovremeno stvoriti preduvjete za daljnji razvoj videousluga. Transformacija i kvantizacija su jedan od računski najintenzivnijih blokova modernih hibridnih sustava za videokodiranje. Povećanje kompresijske učinkovitosti ovog računskog bloka postiže se korištenjem složenih algoritama, nauštrb povećanja složenosti njegove sklopovske ili programske izvedbe. Zahtjevi za većom propusnosti, manjim kašnjenjem i niskom potrošnjom energije ne mogu se ispuniti korištenjem homogenih računalnih sustava pa se heterogeni višeprocesorski računalni sustavi visokih performanci nude kao rješenje. U ovom doktorskom radu predstavljena je arhitektura za cjelobrojnu jednodimenzionalnu diskretnu kosinusnu transformaciju za videokompresiju te jezgrena funkcija za transformaciju i kvantizaciju, optimirana za učinkovito izvođenje na grafičkoj kartici. U slučaju sklopovske arhitekture, optimiranje se temelji na iskorištavanju svojstava transformacijske matrice. Predložena arhitektura tipa pomnoži i pribroji potpuno je protočna. Arhitektura sadrži dvosmjerno sučelje za sinkronizaciju putem kojeg sustav može upravljati podatkovnim stazama transformacijskog procesa i primiti povratnu informaciju o iskoristivosti računskog bloka. Predložena arhitektura izvedena je koristeći FPGA tehnologiju, a ostvarena propusnost iznosi 815 Msps, te se može koristiti za kodiranje videozapisa razlučivosti 4K UHD i brzine osvježavanja slike 30 fps u stvarnom vremenu. U slučaju izvedbe za grafičku karticu, strategija optimiranja uključivala je sva tri aspekta dizajna paralelnog sustava: najveću moguću paralelizaciju samog procesa, iskorištenje raspoloživih visokopropusnih memorija i efikasno korištenje programskih naredbi. Strategija je ostvarena kroz učinkovito mapiranje transformacijskih blokova na blokove dretvi i obrazac učinkovitog vektoriziranog pristupa dijeljenoj memoriji za sve veličine transformacije. Dvije različite grafičke kartice korištene su za evaluaciju predstavljene izvedbe. Faktori ubrzanja u usporedbi sa izvedbama za CPU, AVX2 i cuBLAS dosežu redom vrijednosti 80, 19 i 4
Highly parallel GPU accelerator for HEVC transform and quantization
When analysing Internet traffic today it can be found that digital video content prevails. Its domination will continue to
grow in the upcoming years and reach 82% of all traffic by 2021. If converted to Internet video minutes per second, this
equals about one million video minutes per second. Providing and supporting improved compression capability is therefore
expected from video processing devices. This will relieve the pressure on storage systems and communication networks
while creating preconditions for further development of video services. Transform and quantization is one of the most
compute-intensive parts of modern hybrid video coding systems where coding algorithm itself is commonly standardized.
High Efficiency Video Coding (HEVC) is state-of-the-art video coding standard which achieves high compression
efficiency at the cost of high computational complexity. In this paper we present highly parallel GPU accelerator for HEVC
transform and quantization which targets most common heterogeneous computing CPU+GPU system. The accelerator is
implemented using CUDA programming model. All the relevant state-of-the-art techniques related to kernel vectorization,
shared memory optimization and overlapping data transfers with computation were investigated, customized and carefully
combined to obtain a performance efficient solution across all applicable transform sizes. The proposed solution is
compared against reference implementation which uses NVIDIA cuBLAS library to perform the same work. Obtained
speedup factors for DCI 4K frame are 2.46 times for largest transform size and 130.17 times for smallest transform size
what revealed substantial performance gap of this library when targeting GPU of the Kepler architecture. Achieved
processing time of frame transform and quantization are up to 4.82 ms