AGEIA PhysX Physics Processing Unit - Computer...
Transcript of AGEIA PhysX Physics Processing Unit - Computer...
![Page 1: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/1.jpg)
AGEIA PhysX Physics Processing UnitEECS 573 Case Study
Joseph Lee GreathouseMarch 21, 2007
![Page 2: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/2.jpg)
AGEIA PhysX Physics Processing Unit 2
Overview Slide!!
Physics!What’s that?
Calculating PhysicsSuper-duper easy version
Software versus Hardware physicsWhy hardware physics is awesome
PhysX MicroarchitectureProbably
Comparison to other DevicesAlternate Title: PhysX is a lot like Cell & better than GPGPU
![Page 3: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/3.jpg)
AGEIA PhysX Physics Processing Unit 3
Physics in Modern Games
Rigid Body PhysicsNon-deformable objectsNewtonian physics effectsMost common type of game physics today
Volumetric FluidsModeling how fluidic actions occurSimulated with loads of individual particlesOther volumetric tasks: e.g. smoke
ClothDeformable clothing, rugs, etcModeled by sheets of particles
![Page 4: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/4.jpg)
AGEIA PhysX Physics Processing Unit 4
Physics in Modern Games
Rigid Body PhysicsNon-deformable objectsNewtonian physics effectsMost common type of game physics today
Volumetric FluidsModeling how fluidic actions occurSimulated with loads of individual particlesOther volumetric tasks: e.g. smoke
ClothDeformable clothing, rugs, etcModeled by sheets of particles
![Page 5: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/5.jpg)
AGEIA PhysX Physics Processing Unit 5
Physics in Modern Games
Rigid Body PhysicsNon-deformable objectsNewtonian physics effectsMost common type of game physics today
Volumetric FluidsModeling how fluidic actions occurSimulated with loads of individual particlesOther volumetric tasks: e.g. smoke
ClothDeformable clothing, rugs, etcModeled by sheets of particles
![Page 6: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/6.jpg)
AGEIA PhysX Physics Processing Unit 6
How is this stuff calculated??
Lots and lots of matrix math
LCP: Linear Complementarity ProblemIt turns out that these are very easy to do in parallelNP-Complete
Requires a lot of communication between parallel processes
Huge floating-point requirement
![Page 7: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/7.jpg)
AGEIA PhysX Physics Processing Unit 7
Physics on Modern Computers
Processor runs game engine
Game engine calls Physics API(e.g. Havok)Processor runs physics algorithms
This can take a really, really long time
Processor returns result to gameengineProcessor sends data to graphicssystem
GameEngine
![Page 8: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/8.jpg)
AGEIA PhysX Physics Processing Unit 8
Physics with a Physics Accelerator
Processor runs game engineProcessor calls Physics API(e.g. PhysX/NovodeX)PPU runs physics algorithms
Faster at each physics calculationProcessor free to do other stuff now
PPU returns result to gameProcessor sends data to graphics system
GameEngine
PhysicsAlgorithms
GameEngine
Graphics
![Page 9: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/9.jpg)
AGEIA PhysX Physics Processing Unit 9
PhysX Microarchitecture(Probably)
![Page 10: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/10.jpg)
AGEIA PhysX Physics Processing Unit 10
PhysX Microarchitecture(Probably)
![Page 11: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/11.jpg)
AGEIA PhysX Physics Processing Unit 11
PCU (probably) a MIPS64 5Kf RISC CPUPCU means PPU Control Unit
Controls physics “programs”Mostly scalar, integer, and control dataAssigns tasks to DME/VPEControls communication to PC and driverNo other info about PCE architectureOne option:
Maybe connects to VPE directlyMight put data into place for the MCU
PCE: The PPU Control Engine
PPU Control Engine
![Page 12: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/12.jpg)
AGEIA PhysX Physics Processing Unit 12
PhysX Microarchitecture(Probably)
![Page 13: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/13.jpg)
AGEIA PhysX Physics Processing Unit 13
PhysX Microarchitecture(Probably)
![Page 14: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/14.jpg)
AGEIA PhysX Physics Processing Unit 14
DME: Data Movement Engine
MIU Connects to Board’s 128MB GDDR3 RAMTwo (or more) options:
Dumb switching fabric to connect everything togetherMay be partially programmable to optimize interconnections
PCI & PCI-E Currently SupportedPatents mention using Firewire, USB, etc.
![Page 15: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/15.jpg)
AGEIA PhysX Physics Processing Unit 15
PhysX Microarchitecture(Probably)
![Page 16: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/16.jpg)
AGEIA PhysX Physics Processing Unit 16
PhysX Microarchitecture(Probably)
![Page 17: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/17.jpg)
AGEIA PhysX Physics Processing Unit 17
VPE: Vector Processing Engines
Probably four VPE in current PhysX implementationVPEs communicate with each other through DME
![Page 18: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/18.jpg)
AGEIA PhysX Physics Processing Unit 18
VPE: Vector Processing Engines
![Page 19: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/19.jpg)
AGEIA PhysX Physics Processing Unit 19
VPE: Vector Processing Engines
MCU
IEM/SPRAM
![Page 20: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/20.jpg)
AGEIA PhysX Physics Processing Unit 20
MCU: Memory Control Unit
Controls data transfer from PPU RAM to VPU
Received program orders from PCECan communicate with other MCUs as well(through DME)
Can store data in an Inter-Engine Memory or Scratchpad RAM, etc.
Can also move data to/between individual VPUs
IEM can be used as storage space to move data between VPUs
MCU
IEM/SPRAM
![Page 21: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/21.jpg)
AGEIA PhysX Physics Processing Unit 21
VPE: Vector Processing Engines
![Page 22: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/22.jpg)
AGEIA PhysX Physics Processing Unit 22
VPE: Vector Processing Engines
![Page 23: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/23.jpg)
AGEIA PhysX Physics Processing Unit 23
VPU: Vector Processing Unit
Does the actual physics calculations
Units communicate through shared memory & registers
Multithreaded
Shared memory is banked:MCU can access one block while units utilize the other, etc
Shared memory might be 4Kbyte/bank
![Page 24: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/24.jpg)
AGEIA PhysX Physics Processing Unit 24
VPU: Vector Processing Unit
![Page 25: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/25.jpg)
AGEIA PhysX Physics Processing Unit 25
VPU: Vector Processing Unit
Vector
FPU.x FPU.y FPU.z
Scalar
Load-Store Unit
Arithmetic Logic Unit
Branch Unit
Predicate Logic UnitVLI
W P
roce
ssor
Stu
ff
![Page 26: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/26.jpg)
AGEIA PhysX Physics Processing Unit 26
Data Processing Unit
Specialized VLIW Processor
Three FPU Calculations at once in vector processor
e.g. FMADD, FMSUB, FDOT, etc.
Integer, load/store, branching done in scalar form
MCU puts program for eachdata processing unit ininstruction memory bank
Data Processing Unit
Vector
FPU.x FPU.y FPU.z
Scalar
Load-Store Unit
Arithmetic Logic Unit
Branch Unit
Predicate Logic UnitVLIW
Pro
cess
or S
tuff
![Page 27: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/27.jpg)
AGEIA PhysX Physics Processing Unit 27
PhysX Microarchitecture(One last time)
![Page 28: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/28.jpg)
AGEIA PhysX Physics Processing Unit 28
Some interesting PhysX Facts
No traditional cachePhysics calculations don’t display good localityMemory is controlled explicitly by MCU and PPE
TSMC manufactured: AGEIA is fabless125 million transistors182 mm2
28W (for card?) / 20W (for chip?)
Up to 96 floating point ops (multiply-add, multiply-sub, etc) per clock cycle
4 VPE x 4 VPU x 2 DPU x 3 FP ops = 96 ops
![Page 29: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/29.jpg)
AGEIA PhysX Physics Processing Unit 29
Real Performance Figures
Hard to come byNot a particularly large number of games support PhysX yet
Some games slow downWhen PhysX is plugged in, particle count skyrocketsYou need to graphically render all those neat particles now!
No industry-standard Physics benchmarksMakes it hard for review sites to press button and get charts
![Page 30: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/30.jpg)
AGEIA PhysX Physics Processing Unit 30
PhysX versus Cell
PhysX looks a lot like the Cell processor!
Central RISC ProcessorVector processing elementsNo classical caches
It turns out that Cell is pretty good at physics too.
PS3 Dev kit includes PhysXSDK at no cost.
Memory subsystem, says AGEIA, is limited, though.
EIB is a ring network.SPE can’t talk freely.
![Page 31: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/31.jpg)
AGEIA PhysX Physics Processing Unit 31
PhysX versus GeForce8
Large number of parallelstream processorsNVIDIA hopes to usethis for GPGPU –Including physicsAGEIA engaged inPR war over this stuff.Primary argument: Memory System
Extremely large LCP require moving a lot of data between processorsMemory arrangement in GeForce8 can’t effectively move this data
Might be good enough for the majority of users, though!
![Page 32: AGEIA PhysX Physics Processing Unit - Computer …computermachines.org/joe/presentations/PhysXArchitecture.pdf · AGEIA PhysX Physics Processing Unit 11 PCU (probably) a MIPS64 5Kf](https://reader031.fdocuments.in/reader031/viewer/2022021718/5b89b96a7f8b9abe1e8e48c9/html5/thumbnails/32.jpg)
AGEIA PhysX Physics Processing Unit 32
Questions? Discussion?
Future Features?AGEIA is only saying “smaller process: more transistors” right now.
How do you measure performance?Harder to quantify than framerate and resolution.
Will it survive?Will GPGPU or highly-multicore CPU kill it?Will it end up integrated into some other product?
How can you take this online?My physics is different from your physics... Whose world is right?