introduction
play

Introduction Every new desktop/laptop is now equipped with a - PowerPoint PPT Presentation

Introduction GPUs GPU-(D)BE Results Conclusions Introduction Every new desktop/laptop


  1. Introduction GPUs ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Introduction • Every ¡new ¡desktop/laptop ¡is ¡now ¡equipped ¡with ¡a ¡ graphic ¡processing ¡unit ¡(GPU). • GPU ¡= ¡Massively ¡Parallel ¡Architecture. • For ¡most ¡of ¡their ¡life, ¡such ¡GPUs ¡are ¡idle. • General ¡Purpose ¡GPU ¡applications: Numerical ¡Analysis Bioinformatics Deep ¡Learning MathWorks MATLAB 1 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  2. Introduction GPUs ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions (Distributed) ¡Constraint ¡Optimization • A ¡( D)COP ¡ is ¡a ¡tuple ¡< X , ¡ D , ¡ F , ¡(A, ¡α)>, ¡where: • X ¡ is ¡a ¡set ¡of ¡variables. • D is ¡a ¡set ¡of ¡finite ¡domains. • F ¡ is ¡a ¡set ¡of ¡utility ¡functions : ¡ functions , f i : ⇥ x j ∈ scope ( f i ) D j 7! N [ { 0 , �1 } . • A ¡ is ¡a ¡set ¡of ¡agents, ¡controlling ¡the ¡variables ¡in X . • α ¡maps ¡variables ¡to ¡agents. • GOAL: ¡Find ¡a ¡utility ¡maximal ¡assignment. x ⇤ = arg max F ( x ) x X = arg max f ( x | scope ( f ) ) x f 2 F 2 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  3. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Graphical ¡Processing ¡Units ¡(GPUs) • A ¡GPU ¡is ¡a ¡massive ¡parallel ¡architecture: • Thousands of ¡multi-­‐‒threaded ¡ computing ¡cores . • Very ¡high memory ¡bandwidths . • ~80% ¡of ¡transistors ¡devoted ¡to ¡data ¡processing ¡rather ¡than ¡caching. • However: • GPU ¡cores ¡are ¡slower than ¡CPU ¡cores. • GPU ¡memories ¡have ¡different ¡sizes ¡and ¡access ¡times. • GPU ¡programming ¡is ¡more ¡challenging ¡and ¡time ¡consuming. 3 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  4. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Execution ¡Model • A ¡Thread ¡is ¡the ¡ basic ¡parallel ¡unit . Host Device • Threads are ¡organized ¡into ¡a Block. Block ¡ Block ¡ Block ¡ (0,0) (1,0) (2,0) • Several ¡ warps ¡ are ¡scheduled ¡for ¡ Block ¡ Block ¡ Block ¡ Kernel ¡1 (0,0) (1,0) (2,0) the ¡execution ¡of ¡a ¡GPU ¡function. warp Block ¡ warp Block ¡ warp Block ¡ (0,1) (1,1) (2,1) Block ¡ Block ¡ Block ¡ (0,1) (1,1) (2,1) warp warp warp • Several ¡Streaming ¡Multiprocessors, ¡ (SD) ¡scheduled ¡in ¡parallel. Kernel ¡2 • Single ¡Instruction ¡Multiple ¡Thread warp Thread Thread Thread Thread Thread (SIMT) ¡parallel ¡model. (0,0) (1,0) (2,0) (3,0) (4,0) Thread Thread Thread Thread Thread (0,1) (1,1) (2,1) B (3,1) (4,1) Thread Thread Thread Thread Thread (0,2) (1,2) (2,2) (3,2) (4,2) Thread Thread Thread Thread Thread (0,3) (1,3) (2,3) (3,3) (4,3) ... 4 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  5. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Memory ¡Hierarchy • The ¡GPU ¡memory ¡architecture ¡ is ¡rather ¡involved. GRID Block Block • Registers Shared Shared • Shared ¡memory memory memory • Global ¡memory regs regs regs regs Thread Thread Thread Thread GLOBAL MEMORY HOST CONSTANT MEMORY 5 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  6. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Memory ¡Hierarchy • The ¡GPU ¡memory ¡architecture ¡ is ¡rather ¡involved. GRID Block Block • Registers Shared Shared • Fastest ; memory memory • Only ¡accessible ¡by ¡a ¡ thread ; • Lifetime ¡of ¡a ¡thread. regs regs regs regs • Shared ¡memory Thread Thread Thread Thread • Global ¡memory GLOBAL MEMORY HOST CONSTANT MEMORY 6 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  7. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Memory ¡Hierarchy • The ¡GPU ¡memory ¡architecture ¡ is ¡rather ¡involved. GRID Block Block • Registers Shared Shared • Shared ¡memory memory memory • Extremely ¡fast ; regs regs regs regs • Highly ¡parallel; • Restricted ¡to ¡a ¡ block . Thread Thread Thread Thread • Global ¡memory GLOBAL MEMORY HOST CONSTANT MEMORY 7 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  8. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Memory ¡Hierarchy • The ¡GPU ¡memory ¡architecture ¡ is ¡rather ¡involved. GRID Block Block • Registers Shared Shared • Shared ¡memory memory memory • Global ¡memory regs regs regs regs • Typically ¡implemented ¡in ¡DRAM; • High ¡access ¡latency ¡ (400-­‐‒800 ¡cycles); Thread Thread Thread Thread • Potential ¡of ¡ traffic ¡congestion . GLOBAL MEMORY HOST CONSTANT MEMORY 8 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  9. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Memory ¡Hierarchy • The ¡GPU ¡memory ¡architecture ¡ is ¡rather ¡involved. GRID Block Block • Registers Shared Shared • Shared ¡memory memory memory • Global ¡memory regs regs regs regs • Challenge : ¡using ¡memory ¡ effectively ¡-­‐‒-­‐‒ likely ¡requires ¡to ¡ Thread Thread Thread Thread redesign ¡the ¡algorithm. GLOBAL MEMORY HOST CONSTANT MEMORY 9 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  10. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions CUDA: ¡ Compute ¡Unified ¡Device ¡Architecture Host Device 10 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  11. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions CUDA: ¡ Compute ¡Unified ¡Device ¡Architecture Host Device cu cudaMalloc(&deviceV, sizeV); data Global ¡Memory cudaMemcpy(deviceV, hostV, sizeV, ...) 11 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  12. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions CUDA: ¡ Compute ¡Unified ¡Device ¡Architecture Host Device cu cudaKernel( ) Kernel ¡invocation Global ¡Memory cu cudaKernel<nThreads, nBlocks>( ) 12 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  13. Introduction ¡ ¡ GPUs GPU-­‐‒(D)BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions CUDA: ¡ Compute ¡Unified ¡Device ¡Architecture Host Device data Global ¡Memory cudaMemcpy(hostV, deviceV, sizeV, ...) 13 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  14. Introduction ¡ ¡ GPUs ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ GPU-­‐‒(D)BE Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Bucket ¡Elimination ¡and ¡DPOP • Dynamic ¡Programming ¡procedures ¡to ¡solve ¡(D)COPs. • Both ¡procedures ¡rely ¡on ¡the ¡use ¡of ¡two ¡operators: • Projection ¡Operator: ¡ ¡ π -­‐‒xi (f ij ) x i x j U xj U 0 0 5 0 20 0 1 8 1 0 20 1 8 1 1 3 f ij • Aggregation ¡Operator: ¡ f ij + ¡f ik 14 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  15. Introduction ¡ ¡ GPUs ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ GPU-­‐‒(D)BE Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Bucket ¡Elimination ¡and ¡DPOP • Dynamic ¡Programming ¡procedures ¡to ¡solve ¡(D)COPs. • Both ¡procedures ¡rely ¡on ¡the ¡use ¡of ¡two ¡operators: • Projection ¡Operator: ¡ ¡ π -­‐‒xi (f ij ) x i x j U xj U 0 0 5 max(5, ¡ 20 ) 0 20 0 1 8 1 0 20 1 8 1 1 3 f ij • Aggregation ¡Operator: ¡ f ij + ¡f ik 15 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

  16. Introduction ¡ ¡ GPUs ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ GPU-­‐‒(D)BE Results ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Conclusions Bucket ¡Elimination ¡and ¡DPOP • Dynamic ¡Programming ¡procedures ¡to ¡solve ¡(D)COPs. • Both ¡procedures ¡rely ¡on ¡the ¡use ¡of ¡two ¡operators: • Projection ¡Operator: ¡ ¡ π -­‐‒xi (f ij ) x i x j U xj U 0 0 5 0 20 0 1 8 1 0 20 max( 8 , ¡3) 1 8 1 1 3 f ij • Aggregation ¡Operator: ¡ f ij + ¡f ik 16 F. ¡Fioretto, ¡T. ¡Le, ¡E. ¡Pontelli, ¡W. ¡Yeoh, ¡T. ¡Son

Recommend


More recommend