THARUN NIRANJAN GOMUDURAI PANDIAN, Arizona State University
The research paper titled, “Microarchitectural analysis of image quality assessment algorithms“, aims to improve the efficiency of image quality assessment (IQA) algorithms by analyzing the runtime efficiency of the algorithms and identifying the underlying hardware bottlenecks associated with it. Though this paper defines it research questions and provides a qualitative model, the validation it provides for the results is more persuasive because the custom engine design is merely proposed based on good …show more content…
The most common microarchitectural bottleneck was memory overhead, though the degree to which they affect performance varies across the different algorithms. Hence, prioritization for optimization is based on the impact of hotspot function towards algorithm performance. An important note is that though memory overhead hinders performance of any algorithm, at the microarchitectural level it is caused by various reasons such as L1D replacements, L2D replacements or DTLB. Interestingly, unsuspecting operations like 4k aliasing seem to have an impact on performance of hotspot functions. One obvious solution is to increase cache associated with the CPU to reduce cache misses. Implementing IQA algorithms with locality of reference in mind, helps avoid cache misses. Another solution is to divide images into parts. Perform all operations on that part while in cache and then move to next part. Memory overhead caused due to DTLB can be reduced by using large pages sizes. The second type of bottleneck that affects performance is core bottlenecks. They are caused during data manipulation. Operating on floating point data, denormal values or LEA instructions are the reasons for core bottlenecks. Using single precision floating points instead of double helps improve efficiency. Integers can be used in place of floating points to indicate precision. Overhead caused due to denormal values can be reduced by keeping track of result range and dropping denormal values. Sohoni et. al proposes a custom IQA engine based on the observations from the analysis of IQA algorithms at the microarchitectural level. It is designed based on three common operations used in IDA algorithms, namely, transformation, filtering and statistical computation. The custom IQA engine comprises of three engines, viz. transformation engine, filtering engine and statistical computation engine. The