Lecture 1
Lecture 1
CG Architectures 1
Outline
• Hardware system
– Bus
– GPU/CPU
– Memory/Storage
• Software systems
– Graphics libraries
– Shading languages
– Window systems
CG Architectures 2
Graphics System (1)
• Hardware
– Motherboard:
• CPU, memory, bus, on-board GPU,
– Hard disk, network
– Graphics card
• GPU
• Memory
• Bus
– Display devices
• Printers, screens, projectors, goggles, …
– Input devices
• Keyboards, mouse, trackball, sketch boards, touch screens, joy sticks,..
• Hands, fingers, and body gestures,
• Sounds and voices
CG Architectures 3
Graphics System (2)
• Software – Applications (developed by us
and others)
– OS • Rendering programs
– Window system • Visualization tools
• Window manager • HCI and GUI kits
• Display server • Games
• Client programs • Simulators
– Graphics Libraries • Geometric design tools
• OpenGL, glu, glut, gl es • Word processing software
• Shading languages and • …
drivers (glsl)
• Programming libraries • Contents
(CUDA, OpenCL, …) • Models, images, videos
• Graphic user interface • Trained neural nets
(GUI) API (Qt, glui, …) • Database
CG Architectures 4
Graphics Card
• GPUs + memory + bus + Mother board & bus
interfaces
• Connected with mother board
via a graphics bus:
– PCI
– AGP
– PCI Express
• Usage of graphics cards
– Rendering acceleration
– Image processing
– Geometrical computing
– Massive parallel computing
– General purpose computing
– Artificial computing (deep
learning) …
CG Architectures 5
Graphics Card
CG Architectures 6
Graphics Card Connection
PICe x
• The graphics card is 16 bus
CPU
connected to north
North Main
bridge via a bus. monitor
Graphics
bridge memory
card
– 單晶片系統(SoC)不
採用南橋、北橋架
構,for examples, PCI bus
AMD,Intel South
• The bus can be PCI, bridge
CG Architectures 7
Bus
• PCI bus is the oldest
one.
• AGP is faster.
• PCI express is the
fastest bus.
• Transfer speed (clock
rate)
• Bandwidth (bits, wires)
CG Architectures 8
PCI Express (PCIe)
• Released in 2002
– Compatible with old PCI bus
CG Architectures 9
General Architecture of GPU
• Multiple processors
– Stream Processor , Parallel computing
• Multiple ALUs (cores) in each
processor
– Parallel computing, multiple threads
– Processor clusters
• Hierarchical memory structure
– Main memory in the mother board
– Shared memory in the graphic card
– Local memory for each core/cluster
– Registers for ALUs
– Memory management system
CG Architectures 10
Other GPU Functionalities
• A GPU may contain multiple
ALUs for shading purpose.
• It can process multiple
vertices in parallel.
• It can render several pixels at
the same time.
• It can do other general
purpose computing.
– CUDA & OpenCL, for
examples
• Floating and integer arithmetic
operations are supported
CG Architectures 11
Famous GPU Manufacturers
• Nvidia
• ARM
• Intel
• AMD (ATI)
• Characteristics of GPU
– Graphics computing
– Lower power consumption(*)
– Limited functionalities
– Lower precision (numerically)
– Massively parallel
– System on Chip (SoC)
– More applications, smart-
phones, game kits, AR, VR
head-mount display, …
– Super computing & deep
learning
CG Architectures 12
Some New Applications
• Artificial intelligence • New features
– Pattern recognition – Thousands of thread
– Deep learning in rendering processors (grouped in
& modelling clusters)
– Video stream processing – Multiple ports
• Super-computing – May lacking of display (for
super-computing)
• Self-driving cars – Higher computing power
• Cloud computing – System on chip architecture
• General-purpose – AI computing
computing on graphics – Innovative
processing units programming/computing
environments
(GPGPU), …
CG Architectures 13
Graphics Memory
• AKA video memory
– Several Giga-byte DDR (Dual Data Rate) memory
• For keeping information
– Geometrical data: vertex, normal, connectivity, …
– Textures (very important)
– Images
– Shading programs (written by programmers)
– Other temporary data: scalars, vectors, matrices,…
• On-board or in the graphic card
• Large register file (several megabytes), fast accessing speed.
• Hierarchical architecture/ controlled by memory controllers
CG Architectures 14
Graphics Libraries
• Purposes and definition:
– Sets of subroutines for designing graphics
application programs.
CG Architectures 17
OpenGL ES
• For smartphone programming
– User interface
– Rendering and display
– Image processing
– More primitive than OpenGL
– But, more flexible (you can design your
rendering methods, ..etc.)
– Limited instruction set
CG Architectures 18
Web GL
• Java script API
• logo
• 3D & 2D graphics rendering
• Integrated with web
browsers
– Mixed with HTML elements
• Accelerated by GPU
• Developed from OpenGL ES
& conventional OpenGL
• Easy to use for smart phone
applications
• Limited functionalities
CG Architectures 19
General Purpose GPU
• A GPU contains multiple ALU.
• It can be used to perform
– Scalar floating point calculation
– Basic vector operations
– Basic matrix operations
• People use GPU to solve non-graphical
problems.
– Massive parallel computing
– Deep learning
– Shared memory models
CG Architectures 20
Massive Parallel Computation
• A computer system may contain more than
one GPU.
• A GPU contains many ALU.
• Graphics memory are getting larger.
• A massive parallel computing environment
is emerging.
• Single Instruction Multiple Data (SIMD)
machines
CG Architectures 21
Parallel Programming Language for
GPU
• GPUs are used for parallel processing in
shared memory models.
• Currently, several parallel programming
languages are available:
– CUDA
– OpenCL
• We don’t include libraries for AI
programming.
CG Architectures 22
Deep Learning & GPU
• AI chip = GPU (advanced GPUs)
• Usage:
– Model training (learning)
– Run-time pattern detection
– Run-time classification
– Run-time rendering (virtual reality…)
– 作為加速器…
• Multiple GPUs in a single board
– Many ALU in a single GPU (Nvidia A10, A40, …)
CG Architectures 23