March 8 brownbag seminar organized by the AI engineering theme in Software Center. This time our speaker is Hugo Sica de Andrade.
The requirements for performance continue to increase in computer systems across several domains. Particularly in artificial intelligence applications, several workloads require large amounts of memory, parallel computing, and low-precision computation. One of the most prominent ways of fulfilling these performance requirements is through heterogeneous computing, i.e., using hardware containing more than one type of processor, such as a combination of CPUs, GPUs and FPGAs. This approach has shown to deliver faster execution times and lower energy consumption in several different domains by allowing data to be assigned to processors that are specialized in them.
Adopting this technology, however, requires several changes to a software engineering process that is originally implemented for execution on CPUs. In addition to changes in the code, which must be refactored targeting hardware architectures are inherently different, there is a variety of aspects that must be observed in order to successfully deploy the solution on heterogeneous platforms.
This talk presents the studies we conducted in both academia and industrial contexts in the topic of software engineering for heterogeneous platforms. First, we introduce the concerns and the existing approaches in academia to implement the technology. Then, we discuss the challenges identified in industry in migrating CPU-targeted software to heterogeneous platforms. Finally, we propose a decision framework that guides engineers in the process of migrating software to heterogeneous platforms.