Modern Computer Architecture and Organization by Jim Ledin
Author:Jim Ledin
Language: eng
Format: epub
Publisher: Packt Publishing Pvt. Ltd.
SIMD processing
Processors that issue a single instruction, involving one or two data items, per clock cycle, are referred to as scalar processors. Processors capable of issuing multiple instructions per clock cycle, though not explicitly executing vector processing instructions, are called superscalar processors. Some algorithms benefit from explicitly vectorized execution, which means performing the same operation on multiple data items simultaneously. Processor instructions tailored to such tasks are called single instruction, multiple data (SIMD) instructions.
The simultaneously issued instructions in superscalar processors are generally performing different tasks on different data, representing a multiple instruction, multiple data (MIMD) parallel processing system. Some processing operations, such as the dot product operation used in digital signal processing described in Chapter 6, Specialized Computing Domains, perform the same mathematical operation on an array of values.
While the multiply-accumulate (MAC) operation described in Chapter 6, Specialized Computing Domains performs scalar mathematical operations on each pair of vector elements in sequence, it is also possible to implement processor hardware and instructions capable of performing similar operations on more than a single pair of numbers at one time.
In modern processors, SIMD instructions are available to perform tasks such as mathematics on numeric arrays, manipulation of graphics data, and substring searches in character strings.
The Intel implementation of Streaming SIMD Extensions (SSE) instructions, introduced in the Pentium III processors of 1999, provides a set of processor instructions and execution facilities for simultaneously operating on 128-bit data arrays. The data contained in the array can consist of integers or floating-point values. In the second generation of SSE (SSE2) instructions, the following data types can be processed in parallel:
Two 64-bit floating-point values
Four 32-bit floating-point values
Two 64-bit integer values
Four 32-bit integer values
Eight 16-bit integer values
Sixteen 8-bit integer values
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8148)
Test-Driven Development with Java by Alan Mellor(5903)
Hadoop in Practice by Alex Holmes(5841)
Data Augmentation with Python by Duc Haba(5777)
Jquery UI in Action : Master the concepts Of Jquery UI: A Step By Step Approach by ANMOL GOYAL(5685)
Principles of Data Fabric by Sonia Mezzetta(5559)
Learn Blender Simulations the Right Way by Stephen Pearson(5349)
Microservices with Spring Boot 3 and Spring Cloud by Magnus Larsson(5319)
Life 3.0: Being Human in the Age of Artificial Intelligence by Tegmark Max(4998)
Big Data Analysis with Python by Ivan Marin(4881)
RPA Solution Architect's Handbook by Sachin Sahgal(4729)
The Infinite Retina by Robert Scoble Irena Cronin(4408)
Functional Programming in JavaScript by Mantyla Dan(3942)
Pretrain Vision and Large Language Models in Python by Emily Webber(3839)
The Age of Surveillance Capitalism by Shoshana Zuboff(3783)
Infrastructure as Code for Beginners by Russ McKendrick(3637)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3320)
Deep Learning with PyTorch Lightning by Kunal Sawarkar(3203)
Blockchain Basics by Daniel Drescher(3182)
