top of page
  • Writer's pictureARJUN RAGHUNANDANAN

What I Learned Today? Comparing CPU, GPU, FGPA and other architectures.

Today I attended a webinar by intel about different types of architectures. So I thought I should concise what I could grasp from webinars from now on and share them here along with the related resources so that It could be helpful for some person out there looking for these knowledge.


The event mainly dealt with brief explanation of these architectures and what better suits each hardware types and requirements. The resource person for this event was Karl Qi, A oneAPI Technical Evangelist, who focuses on enabling HPC and AI customers to create the optimal solution for their needs using the Intel® oneAPI toolkits. Q&A session was handled by Mike Lee, Senior Product Marketing Engineer at Intel. Since these stuff were new to me and I honestly haven't heard about FGPA, I though I should just sit through and gain whatever information I can get from this. Spoiler Alert & Disclaimer, I am in no way Authorised, Associated or Part of any of intel's campaign or marketing so, what I'm sharing here is in regard to my knowledge gain as a wishfull student and enthusiast.


I learned that, from intel's resource standpoint, application workloads can be Scalar, Vector, Spacial and Matrix based model's and each type of data demands their data-centric handwares to implement. CPU and GPU are more commonly seen and has been around for quite some time and due to software development complexities, there are certain limits to choosing what hardware to use for each application. Intel's oneAPI is an industry standard initiative introduced as an abstraction method for the vendor to choose their choice of accelerated technology by realising each framework so that they can develop & deploy applications with a peace of mind. It is a complete set of compilers middlewares, libraries, porting, analysis and debugger tools which accelerates compute processes and is interoperable with existing programming models.


CPU Architecture

There are Traditional sequential processor for general-purpose applications. These are also known as “Scalar Architecture” and are optimized to process streams of serial instructions . They can be made more powerful with the use of Multiple threads (logical core) per core & multiple core per processor for increased performance and workloads. These have Lower latency compared to offload acceleration and it is easier in terms of Ease-of-development . Since CPU architectures has stayed afloat for more than 50 years there are larger number of supported instructions out there compared to other architectures.


GPU Architecture

These are also called “Vector Architecture” and they were originally designed for graphics processing. Now, They are used in a wide range of computationally intensive applications due to their efficient processing of vector data. GPUs can run as Massively parallel, specialized cores and can execute single instructions in multiple-thread. GPUs are optimized for aggregate throughput. They can do more computations while needing less control and cache. Benefits of using GPU in developments is that they can easily be used for massively parallel computing such as for effective execution of data-parallel code and can make use of High DRAM memory bandwidth. GPUs are optimized for continuous reads and writes. They can be used for large sized problems with Little or no dependency across data being processed.


Field Programmable Gate Array (FPGA) Architecture

Flexible collection of logic elements and IP blocks that can be configured and changed in the field. These are considered as “Spatial Architecture” and is used to create Custom Compute Pipelines from software . These can have Millions of logic elements, Thousands of embedded memory blocks& Data Signal Processing blocks etc.

Some of the benifits of using FPGA inlcude Computing Efficiency, choice of Custom Instruction sets, Data dependancy and Non-Standard data type support. They can be tuned to the needs of software. They can have option for Rich I/O such as various network, memory, and custom interfaces as per the requirement of the softwares. FPGA custom on-chip memory allows large amount of simultaneous dictionary lookups and there datapipes allows data to flow across simultaneously executing kernels. for more detailed description of these, I would recommend visiting the respective documentation links below because this is actually a new knowledge for me and hence I can't pose around as understanding everything about this.


ASIC Architecture

Custom integrated circuit optimized for the end application. These are custom designed and tailored to the application requirements and their functions and will have a combination of industry standards and customisations for optimum performance and efficiency. These developments take longer times and changes in applications in turn creates changes in the design of the circuits.


to summarise, for the best performance, the developed applications should leverage these different architectures' strength for their advantage and should be developed with efficiency and built-in interoperability in mind.


for reference I will share few of intel's documentation links here so that you can use them too if you find these topics interesting.


oneAPI Resources

(These links are directed to Intel's respective pages and not to my websites.)



Arrow Article Resources

And thanks all for today, I will be back with another learning on another day.

Till then,.

Listen to your Heart; Live your life the way you feel.

Comments


bottom of page