0% found this document useful (0 votes)
18 views29 pages

ACA1

The document discusses SIMD (Single Instruction, Multiple Data) architecture, highlighting its role in parallel processing and its distinction from concurrency. It explains Flynn's taxonomy classification of computer architectures and details the characteristics, benefits, and applications of SIMD in various fields such as machine learning, scientific simulations, and computer graphics. Additionally, it covers types of processing, pipelined vector processors, and the advantages of SIMD in improving performance and energy efficiency.

Uploaded by

Kashaf Maqsood
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views29 pages

ACA1

The document discusses SIMD (Single Instruction, Multiple Data) architecture, highlighting its role in parallel processing and its distinction from concurrency. It explains Flynn's taxonomy classification of computer architectures and details the characteristics, benefits, and applications of SIMD in various fields such as machine learning, scientific simulations, and computer graphics. Additionally, it covers types of processing, pipelined vector processors, and the advantages of SIMD in improving performance and energy efficiency.

Uploaded by

Kashaf Maqsood
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

Advance Computer

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

• Flynn's taxonomy is a classification of computer architectures, proposed by Michael J. Flynn


in 1966.
• Best-known classification scheme for parallel computers.
• Depends on the parallelism it exhibits with its
-Instruction stream
-Data stream
• A sequence of instructions (the instruction stream) manipulates a sequence of operands (the
data stream).
• The instruction stream (I) and the data stream (D) can be either single (S) or multiple (M).
Classification (Cont.)

• Single instruction single data (SISD)


• Single instruction multiple data (SIMD)
• Multiple instruction single data (MISM)
• Multiple instruction multiple data(MIMD)
Classification (Cont.)
Classification (Cont.)
SIMD
Architecture
SIMD Architecture
• Single instruction, multiple data
(SIMD), is a class of parallel computers
in Flynn's taxonomy.
• It describes computers with multiple
processing elements that perform the
same operation on multiple
data points simultaneously.
• There are simultaneous (parallel)
computations, but only
a single process (instruction) at a
given moment.
• SIMD is used to improve processor
performance by executing a single
instruction on multiple data elements
simultaneously.
SIMD (Cont.)
Characteristics of SIMD

• 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

Two architectures suitable for vector processing are:

• Pipelined vector processors


• Parallel Array processors
Pipelined vector processors
• A pipelined vector processor combines the principles of pipelining and vector
processing to efficiently handle large amounts of data and perform operations on
multiple data elements simultaneously.
• A pipelined vector processor applies pipelining to vector operations, allowing it to
process different parts of a vector simultaneously.
• Each stage of the pipeline performs a specific part of the operation (e.g., fetching data,
decoding instructions, performing arithmetic operations, and writing results).
• Vectors contain multiple data elements.
• The number of data elements per vector is typically referred to as the vector length.
Role of Pipelined Vector
Processors in SIMD
• Vectorized Instruction Execution:
Pipelined vector processors execute vectorized instructions, which operate on multiple data
elements simultaneously
• Data Parallelism:
Pipelined vector processors exploit data parallelism, where a single instruction is executed on
multiple data elements.
• High-Throughput Processing:
Pipelined vector processors provide high-throughput processing, enabling the efficient
processing of large datasets.
Pipelining Techniques in SIMD
• Linear Pipelining:
Each stage of the pipeline performs a specific function, and the output of each stage is
passed to the next stage.
• Non-Linear Pipelining:
The pipeline is divided into multiple stages, and each stage can perform multiple functions.

• 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

Fine-grained Operates on small data elements, such as


SIMD bytes or pixels.

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.)

• Video Processing: Video encoding, decoding, and other video processing


workloads benefit from SIMD.
• Gaming: Game engines, physics simulations, and other gaming workloads rely
on SIMD.
• Artificial Intelligence: AI workloads, such as natural language processing,
computer vision, and robotics, benefit from SIMD.
• High-Performance Computing: SIMD is used in various HPC applications,
such as weather forecasting, fluid dynamics, and materials science.
Thank You

You might also like