ACA1
ACA1
Architecture
Presented to: Presented
Dr. Saima By:
Farhan Alina
Areeba
Shiza
SIMD
Architecture
Concurrency Vs. Parallelism
Concurrency:
A concurrent program manages multiple tasks at the same time, but they are not necessarily
executed simultaneously. The CPU rapidly switches between tasks, creating the illusion of
parallel execution.
Parallelism:
A parallel program executes multiple tasks simultaneously on separate processors or
cores. There is minimal or no context switching because tasks run on separate processors.
Concurrency Vs. Parallelism (Cont.)
Flynn’s Taxonomy Classification
• Single Instruction:
A single instruction is broadcast to multiple processing elements.
• Multiple Data:
Each processing element operates on a different data element.
• Parallel Execution:
Instructions are executed in parallel across multiple processing elements.
How SIMD
Processes?
Processing/Working
Types of Processing
• Scalar Processing
In scalar processing, the processor handles one data element at a time. A scalar processor is
a “Single Instruction Single Data (SISD) processor”.
• Vector Processing
Vector processing performs operations on multiple data elements simultaneously by
grouping them into vectors.
A vector or array processor implements an instruction set containing instructions that
operate on 1-D arrays of data called vectors.
A vector processor is a “Single Instruction, Multiple Data (SIMD) processor”.
Scalar Vs. Vector Processing
Architecture for Vector Processing
• Dynamic Pipelining:
The pipeline is dynamically reconfigured to optimize performance for specific workloads.
Parallel Array processors
• In computer architecture and SIMD (Single
Instruction Multiple Data) processing, a
parallel array processor consists of multiple
processing elements (PEs) arranged in an
array.
• Each PE in the array executes the same
instruction simultaneously on different data
elements, allowing for parallel processing of
large datasets. This architecture is
particularly useful for applications that
require simultaneous execution of the same
operation on multiple data elements, such as
image processing, scientific simulations, and
machine learning. The PEs in the array can
be simple arithmetic logic units (ALUs).
Advantages of Vector Processing
• Quick fetch and decode of a single instruction for multiple operations.
• Reduce the time required to write and optimize code for data-parallel applications.
• Easier Addressing of Main Memory
• Elimination of Memory Wastage
• High throughput
• Reduced Code Size
Types of SIMD
Coarse-
grained Operates on larger data elements, such as vectors or matrices.
SIMD
Types of SIMD (Cont.)
Why SIMD important
• SIMD (Single Instruction, Multiple Data) is a crucial technology in modern computing,
enabling parallel processing of multiple data elements with a single instruction. This leads
to significant performance improvements, increased throughput, and reduced power
consumption, making SIMD a vital component in various applications such as scientific
simulations, machine learning, computer graphics, and data analytics. With widespread
hardware and software support, SIMD continues to play a key role in emerging
technologies like artificial intelligence, robotics, and the Internet of Things (IoT), driving
innovation and advancements in computing.
Benefits Of SIMD
• Improved Performance:
SIMD enables parallel processing of multiple data elements, leading to significant
performance improvements.
• Increased Throughput:
By executing a single instruction on multiple data elements, SIMD increases the
overall throughput of the system.
• Reduced Power Consumption:
SIMD can reduce power consumption by minimizing the number of instructions
executed.
• Energy Efficiency:
By executing multiple data elements in parallel, SIMD improves energy efficiency.
• Scalability:
SIMD can be scaled up to accommodate increasing numbers of processing elements.
• Flexibility:
SIMD enables flexible and efficient processing of various data types and sizes.
Benefits Of SIMD (Cont.)
• Simplified Programming:
SIMD enables developers to write simpler code, as a single instruction can operate on
multiple data elements.
• Better Resource Utilization:
SIMD enables better utilization of processing resources, reducing idle time and
improving overall system efficiency.
Applications
• Scientific Simulations: Climate modeling, fluid dynamics, molecular dynamics, and other
scientific simulations benefit from SIMD.
• Machine Learning: Neural network training, inference, and other machine learning
workloads are accelerated using SIMD.
• Computer Graphics: 3D rendering, video encoding, image processing, and other graphics
workloads rely on SIMD.
• Data Analytics: Data mining, business intelligence, data visualization, and other data
analytics workloads benefit from SIMD.
• Cryptography: Encryption, decryption, and other cryptographic workloads are
accelerated using SIMD.
• Image Processing: Image filtering, convolution, and other image processing techniques
are accelerated using SIMD.
Applications (Cont.)