Multi core development
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Multi-Core Development PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on
  • Presentation posted in: General

Multi-Core Development. Kyle Anderson. Overview. History Pollack’s Law Moore’s Law CPU GPU OpenCL CUDA Parallelism. History. First 4 bit microprocessor – 1971 60,000 instructions per second 2,300 transistors First 8 bit microprocessor – 1974 290,000 instructions per second

Download Presentation

Multi-Core Development

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Multi core development

Multi-Core Development

Kyle Anderson


Overview

Overview

  • History

  • Pollack’s Law

  • Moore’s Law

  • CPU

  • GPU

  • OpenCL

  • CUDA

  • Parallelism


History

History

  • First 4 bit microprocessor – 1971

    • 60,000 instructions per second

    • 2,300 transistors

  • First 8 bit microprocessor – 1974

    • 290,000 instructions per second

    • 4,500 transistors

    • Altair 8800

  • First 32 bit microprocessor – 1985

    • 275,000 transistors


History1

History

  • First Pentium processor released – 1993

    • 66 MHz

  • Pentium 4 released – 2000

    • 1.5 GHz

    • 42,000,000 transistors

  • Approach 4GHz 2000 - 2005

  • Core 2 Duo released – 2006

    • 291,000,000 tranisitors


History2

History


Pollack s law

Pollack’s Law

  • Processor Performance grows with square root of area


Pollack s law1

Pollack’s Law


Moore s law

Moore’s Law

  • “The Number of transistors incorporated in a chip will approximately double every 24 months.” – Gordon Moore, Intel co-founder

  • Smaller and smaller transistors


Moore s law1

Moore’s Law


Multi core development

CPU

  • Sequential

  • Fully functioning cores

  • 16 cores maximum Currently

  • Hyperthreading

  • Little Latency


Multi core development

GPU

  • Higher latency

  • Thousands of cores

  • Simple calculations

  • Used for research


Opencl

OpenCL

  • Multitude of Devices

  • Run-time compilation ensures most up to date features on device

  • Lock-Step


Opencl data structures

OpenCL Data Structures

  • Host

  • Device

    • Compute Units

      • Work-Group

        • Work-Item

  • Command Queue

  • Kernel

  • Context


Opencl types of memory

OpenCL Types of Memory

  • Global

  • Constant

  • Local

  • Private


Opencl1

OpenCL


Opencl example

OpenCL Example


Opencl example1

OpenCL Example


Opencl example2

OpenCL Example


Multi core development

CUDA

  • NVidia's proprietary API for their GPU’s

  • Stands for “Compute Unified Device Architecture”

  • Compiles directly to hardware

  • Used by Adobe, Autodesk, National Instruments, Microsoft and Wolfram Mathematica

  • Faster than OpenCL because compiled directly on hardware and focus on a single architecture.


Cuda indexing

CUDA Indexing


Cuda example

CUDA Example


Cuda example1

CUDA Example


Cuda example2

CUDA Example


Cuda function call

CUDA Function Call

cudaMemcpy( dev_a, a, N * sizeof(int),cudaMemcpyHostToDevice );

cudaMemcpy( dev_b, b, N * sizeof(int),cudaMemcpyHostToDevice );

add<<<N,1>>>( dev _ a, dev _ b, dev _ c );


Types of parallelism

Types of Parallelism

  • SIMD

  • MISD

  • MIMD

  • Instruction parallelism

  • Task parallelism

  • Data parallelism


Multi core development

SISD

  • Stands for Single Instruction, Single Data

  • Does not use multiple cores


Multi core development

SIMD

  • Stands for “Single Instruction, Multiple Data Streams”

  • Can be process multiple data streams concurrently


Multi core development

MISD

  • Stands for “Multiple Instruction, Single Data”

  • Risky because several instructions are processing the same data


Multi core development

MIMD

  • Stands for “Multiple Instruction, Multiple Data”

  • Instructions are processed sequentially


Instruction parallelism

Instruction Parallelism

  • Mutually exclusive

  • MIMD and MISD often use this

  • Allows multiple instructions to be run at once

  • Instructions considered operations

  • Not programmatically done

    • Hardware

    • Compiler


Task parallelism

Task Parallelism

  • Dividing up of main tasks or controls

  • Runs multiple threads concurrently


Data parallelism

Data Parallelism

  • Used by SIMD and MIMD

  • A list of instructions is able to work concurrently on a several data sets


  • Login