27 Sep Graphics Processing Unit Processor
Please read the following. The assignment requirements are at the end.
In this assignment, we will cover all four topics by discussing the suitability of the computers that are based on GPU, superscalar, multicore, and heterogeneous multicore processors to a given list of commonly used software applications. You will be required to sort the software applications based on the suitability of either of the aforementioned processor-based computers and to justify your reasoning.
To assist you in completing this assignment accurately, please first read through the brief introduction that provides a quick tutorial on the basic concepts of GPU, superscalar, multicore, and heterogeneous multicore processors.
Introduction
Graphics Processing Unit Processor
A graphics processing unit (GPU) is a special type of multicore microprocessor consisting of an array of streaming multiprocessors (SM). Each SM has a few hundred or thousand Compute Unified Device Architecture (CUDA) cores. Each CUDA core is equivalent to a traditional central processing unit (CPU), which can handle one thread of computing tasks. Therefore, each SM can handle a few hundred or thousand threads of computing tasks in parallel. The following shows the architecture block diagram of an SM:
(Gao, 2017)
Read this detailed tutorial of CUDA core to learn more.
Graphics processing units are optimized to display graphics and to do very specific computational tasks. For example, a GPU is better at video-rendering types of computation that create simple mathematical operations over and over again. A GPU does not have any virtual memory or means of addressing any input/output (I/O) devices such as a CPU, and it is very inefficient to run a single thread software. However, a GPU’s massive parallelism has enabled it to be extremely efficient for any data processing that requires massive parallelism. This is why GPUs have been used for rendering the complex three-dimensional graphics required by modern games.
In recent years, along with the bandwidths of GPU, dynamic random-access memory (DRAM) has increased tremendously. Hence, GPUs have been used by many data centers for data analytics and artificial intelligence (AI) tasks that usually require very large numbers of math calculations using an identical math formula (Korzeniowski, 2017).
Review this detailed introduction to the development history of GPUs to learn more.
Superscalar Processor
A superscalar is another architecture type that promotes parallel computing in processors. This is achieved through letting the CPU manage multiple instruction pipelines. Each pipeline executes its own instruction, and all of the pipelines run concurrently during a clock cycle. This key technique is designed to feed the different pipelines through a number of execution units within the processor. To minimize the idle time of pipelines, the CPU must intelligently retrieve and delegate instructions to the pipelines. The following shows a generic superscalar processor organization (Stallings, 2019):
The level 1 cache is divided into an instruction cache (I-cache) and a data cache (D-cache). A batch of instructions is first fetched into an instruction buffer (I-buffer) and then decoded by determining the opcode and operand specifiers. The next step is detecting the interinstruction dependencies among the next batch of instructions fetched but not yet dispatched. Then, the selected instructions are issued in the next instruction cycle through the issue window.
A superscalar processor has multiple reservation stations, one for each pipeline. A reservation station is a set of input registers used to buffer operations and operands for a functional unit. A critical role of the reservation station is to avoid a bottleneck during the instruction decode (ID) time. The ID issues an instruction whenever a functional unit becomes ready and the hazards have been solved. All of the reservation stations work together to form a buffer to allow instructions to be issued as fast as possible during the ID time to their corresponding functional units as soon as they become available. The results will be kept in the reorder buffer until they can be safely stored to the memory or a register in program order. When an instruction is complete and can be finalized, it is either written back to the register file, or the results are forwarded to the reservation stations. (Stallings, 2019)
Because of its strong instruction-level parallelism, the superscalar processor is best equipped to run any software that has concurrency at the micro level. One such software is simulation software, which can divide many micro-level math calculation tasks to gain performance improvement. Another software is data analytics, which conducts its analytic tasks by doing very large amounts of math calculations based on many different math formulas.
Multicore Processor
The core of a microprocessor is equal to one CPU. Therefore, a multicore processor consists of at least two or more CPUs. The concrete organization of a multicore processor can vary depending on the other parts of the processor, especially the way that cache memory, main memory, I/O interface, and the data bus are arranged. The following shows four different types of general organizations of a multicore processor (Stallings, 2019):
A computer system that uses the multicore processor is called a multicore system. The reason for developing the multicore system is to support parallel computing at the thread or application level (in contrast to the instruction-level parallelism). The multicore processor supports database transactions (both database queries and updating transactions). It also supports search engine software efficiently to support a large amount of concurrently submitted search inquiries.
Heterogeneous Multicore Processor
The multicore processors that we described earlier in this course all have identical central processing unit (CPU) cores. Those are known as homogeneous multicore processors. To further improve computing performance, there is another type of multicore processor that has been developed. It uses CPU for some cores and a GPU for other cores. It is called a heterogeneous multicore processor.
A GPU is good at supporting any software or application that can be executed through thousands of parallel execution threads. Hence, by adding GPU cores into the processor chip, one can greatly enhance the multicore system’s ability to perform well at supporting any applications that process large amounts of vector and matrix data, such as gaming software and big data analytics software.
The organization of a heterogeneous multicore processor can have many possible layouts depending on the combinations of CPUs and GPUs used in the chip of the processor. The following shows one example of a possible organization (Stallings, 2019):
The Key Techniques Used by a Heterogeneous Multicore Processor to Improve Performance
The ultimate objective of a heterogeneous multicore processor is to allow software programmers to write applications that use both the serial processing power of CPUs and the parallel processing power of GPUs seamlessly, with efficient coordination at the operating system and hardware level.
Several key techniques used by the heterogeneous multicore processor to improve the computation performance include the following:
• The entire virtual memory space is visible to both the CPU and GPU.
• The virtual memory system brings in pages to physical main memory as needed.
• A coherent memory policy ensures that the CPU and GPU caches both see an up-to-date view of data.
• A unified programming interface enables users to exploit the parallel capabilities of the GPUs within programs that rely on CPU execution as well.
Assignment Details
The following is a list of 10 common software applications:
• Image processing
• Simulation modeling
• Online video games
• Speech recognition
• Video conferencing
• Multimedia authoring
• Big data analytics engine
• Three-dimensional rendering
• Database transaction processing
• Web site text-based search engine
Your assignment is to complete the following tasks:
1. Task 1: Assume that you only have GPU processor-based computers. Select at least 2 software applications from the list above that will run on this type of computer. Explain why you made these choices.
2. Task 2: Assume that you only have superscalar processor-based computers. Select at least 2 software applications from the list above that will run on this type of computer. Explain why you made these choices.
3. Task 3: Assume that you only have multicore processor-based computers. Select at least 2 software applications from the list above that will run on this type of computer. Explain why you made these choices.
4. Task 4: Assume that you only have computers based on heterogeneous multicore processors. Select at least 2 software applications from the list above that will run on this type of computer. Explain why you made these choices.
Please use the following table to present your answers:
Task Processor Type Software Applications Justification
Task 1 GPU Processor
Task 2 Superscalar Processor
Task 3 Multicore Processor
Task 4 Heterogeneous Multicore Processor
Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Ask A Question and we will direct you to our Order Page at WriteDemy. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.
Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.