SlideShare a Scribd company logo
1 of 87
Download to read offline
OPTIMIZING BIG DATA ANALYTICS
ON HETEROGENEOUS PROCESSORS
MAYANK DAGA, MAURICIO BRETERNITZ, JUNLI GU
AMD RESEARCH
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |2
HETEROGENEOUS PROCESSORS - EVERYWHERE
SMARTPHONES TO SUPER-COMPUTERS
Phone
Tablet
Notebook
Workstation
Dense Server
Super computer
From Phil Rogers APU13 Keynote
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |3
35 YEARS OF MICROPROCESSOR TREND DATA
Homogeneous processors
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |4
IMPORTANT SHIFTS
2004 - 2005 2007 - 2008 2010 - 2011
GPU CPU
The Era of Heterogeneous Computing Is Here !
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |5
CENTRAL PROCESSING UNIT (CPU)
 Few BIG cores
 Ideal for scalar & control-intensive parts of application
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |6
 Lots of small cores
 Resides over the PCIe bus
 Ideal for data-parallel parts of the application
GRAPHICS PROCESSING UNIT (GPU)
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |7
GPU
Dual
x86 CPU
Module
 A heterogeneous platform with CPU+GPU on the same silicon die
 Ideal for both serial and data-parallel parts of application
 TDP of less than 100 Watts
ACCELERATED PROCESSING UNIT (APU)
Data-parallel Serial
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |8
HOW IS AN APU DIFFERENT
 Manage data-movement across PCIe®
 Use local scratchpad memory (cache)CPU PCIe
16 GB/s
300-500 GB/s
GPU
LDS
CPU GPU
LDS
 No data-movement overhead
 Programming is similar to discrete GPU
but simpler
Sys. Mem
Sys. Mem
Accelerated Processing Unit (APU)
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |9
MODERN WORKLOADS ARE HETEROGENEOUS
 Video is expected to represent two thirds of mobile data traffic by 2017
‒ Video processing is inherently parallel … and can be accelerated
 Big data growing exponentially with exabytes of data crawled monthly
‒ Map reduce is a heterogeneous workload
 Rapid growth of Sensor Networks
‒ Drives exponential increase in data
 Internet of Things (IoT) results in explosion of data sources
‒ Another exponential growth in data at local and cloud level
SCALAR CONTENT WITH A GROWING MIX OF PARALLEL CONTENT
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |10
HETEROGENEOUS SYSTEM ARCHITECTURE (HSA)
CPU
1
CPU
2
CPU
N
CU
1
CU
2
CU
3
CU
M-1
CU
M
… …
Unified Coherent Memory
All processors use same memory addresses
Full access to virtual and physical memory
Power efficient
Easy to program
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |11
Large amounts of data stored in cloud
Needs to be analyzed quickly
Different types of structured
and unstructured data
LARGE-SCALE DATA ANALYTICS & HETEROGENEOUS
COMPUTE (HC)
HC makes the cloud energy-efficient
GPU provides the computational
horsepower
A heterogeneous platform for the
heterogeneous data
47% GPU
Programming
Heterogeneous
Processors
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |13
HSA
IL
HSA Kernel
Driver
HSA Core
Runtime
HSA
Finalizer
HSA
Helper
Libraries
OpenCL™
App
OpenCL
Runtime
OpenMP
App
Various
Runtimes
Python
App
Various
Runtimes
C++ AMP
App
Various
Runtimes
PROGRAMMING LANGUAGES PROLIFERATING ON APU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |14
C++ AMP
OpenCL Performance
Productivity
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |15
WHAT IS OPENCL
 OPEN Computing Language
‒ Open standard managed by the Khronos Group
 Platform Agnostic --- CPUs, GPUs, FPGAs, DSPs
OpenCL™ Architecture – Platform Model
Host
Compute Device
Compute UnitProcessing
Element
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |16
OPENCL: EXECUTION MODEL
 Host Program
‒ Executes on the host (usually a CPU)
‒ Sends commands to the compute devices using a queue
 Kernel
‒ Basic unit of executable code which runs on compute devices
‒ A grid of parallel threads execute the kernel on the compute device
AMD
Group of threads executing
on the same GPU core
Individual threads
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |17
CODE EXAMPLE
for loop {
// do work;
}
kernel {
// do work;
}
1. OpenCL Initialization
2. Allocate memory
3. Data_copy_GPU
4. Launch GPU Kernel
5. Data_copy_Host
Host-side code Device-side code
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |18
GETTING STARTED RESOURCES (OPENCL)
 AMD APP Programming SDK
‒ http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-
processing-app-sdk/
 AMD APP Programming Guide
‒ http://amd-dev.wpengine.netdna-
cdn.com/wordpress/media/2013/12/AMD_OpenCL_Programming_User_Guide2.pdf
‒ http://amd-dev.wpengine.netdna-
cdn.com/wordpress/media/2013/12/AMD_OpenCL_Programming_Optimization_Guid
e2.pdf
 Works for both Windows and Linux
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |19
C++ AMP
 C++, not C
 Mainstream: programmed by millions
 Minimal: just one language extension
 Portable: mix and match hardware from any vendor
 General and Future Proof: designed to cover full-range of heterogeneity
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |20
parallel_for_each(num_threads, [=] (t_idx) {
// do work;
} );
CODE EXAMPLE
+ Combination of library and extensions to C++ standard
+ Single-source
+ Substantially boosts programmer productivity
- No asynchronous data-transfers
for loop {
// do work;
}
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |21
GETTING STARTED RESOURCES (C++ AMP)
 Compiler and runtime
‒ https://bitbucket.org/multicoreware/cppamp-driver-ng/wiki/Home
‒ Microsoft Visual Studio
 Programming Guide
‒ https://msdn.microsoft.com/en-us/library/hh265136.aspx
 Works for both Windows and Linux
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |22
PERFORMANCE
App1 App2 App3 App4 Geo Mean
Performance
OpenCL C++ AMP
2x
Daga et al. IISWC 2015
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |23
PRODUCTIVITY
App1 App2 App3 App4 Geo Mean
Productivity
OpenCL C++ AMP
3x
Daga et al. IISWC 2015
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |24
SUPPORT FOR POPULAR LIBRARIES
 Computer Vision
‒ OpenCV
 Data Science
‒ SciPy
‒ NumPy
 Image Processing
‒ ImageMagick
 Parallel Standard Template Library
‒ Bolt
 Linear Algebra Library
‒ AMD clBLAS
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |25
OUR THREE-PRONGED APPROACH TO DATA ANALYTICS
 Enhancing Programming Model
‒ HadoopCL and Apache Spark: flexibility, reliability, and programmability of Hadoop
accelerated by OpenCL
 Enhancing Data Operations
‒ Deep Neural Networks: achieved 2x energy efficiency on the APU than discrete GPUs
‒ Breadth-first Search: fastest single-GPU Graph500 implementation (June 2014)
‒ SpMV: state-of-the-art CSR-based SpMV (13x faster than prior CSR-SpMV and 2x faster
than other storage formats
 Enhancing Data Organization
‒ In-Memory B+ Trees: efficient memory reorganization to achieve 3x speedup on the
APU over a multicore implementation
NESTED PROCESSING OF
MACHINE LEARNING
MAP-REDUCE, BIG DATA
ON APUS
MAURICIO BRETERNITZ, PH.D.
AMD RESEARCH
TECHNOLOGY & ENGINEERING GROUP
AMD
thanks: Max Grossman, Vivek Sarkar
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |27
MapReduce in 30 seconds: Estimating PI
1- pick random points in unit rectangle
2- count fraction inside circle
Area: π/ 4
Map-Reduce:
Map: random point inside? Issue k=1, v=1 else k=0,v=1
Reduce: count 0 keys and count 1 keys
Programmer: writes { map, reduce } methods, system does
rest
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |28
• Open source implementation of MapReduce
programming model
• Runs on distributed network in several Java VMs
• Distributed file system, reliability guarantees,
speculative execution, Java programming language and
libraries, implicit parallelism
Map
Map
Map
V1
V2
V3
Reduce
Reduce
V1 V2
V3
barrier
HADOOP
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |29
TARGET ARCHITECTURE
 Target: CLUSTER of APUs
 Two-Level Parallelism:
‒ Across nodes in cluster
‒ Within Node (APU)
‒ Multicore (CPU)
‒ Data parallel(GPU)
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |30
NESTED PROCESSING APPROACH
PARTITION
WORK
LOCALLY
COMBINE
RESULTS
nest: CPU+GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |31
WHY APUS – MAP REDUCE-REDUCE
Map
Map
Map
V1
V2
V3
Reduce
Reduce
V1 V2
V3
barrier
Map
Map
Map
V1
V2
V3
Reduce
Reduce
V1 V2
V3
Map
Map
Map
V1
V2
V3
Reduce
Reduce
V1 V2
V3
Reduce
Reduce
V1 V2
V3
Reduce
Reduce
V1 V2
V3
Reduce
Reduce
V1 V2
V3
SPLIT: enough work for one GPU
NO MEMORY LIMIT
CPU+GPU execution
CPU+GPU execution on each node
Final reduction in cluster
Aggregate node’s results
Network
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |32
HadoopCL
MapReduce on Distributed Heterogeneous Platforms Through
Seamless Integration of Hadoop and OpenCL
Max Grossman1, Mauricio Breternitz2, Vivek Sarkar1
1Rice University, 2AMD Research
2013 International Workshop on High Performance Data Intensive Computing.
May 2013.
Implemented with AMD’s APARAPI:
• Java methods -> GPU
HADOOPCL
Collaboration with Rice University:
M. Grossman, M. Breternitz, V. Sarkar. “HadoopCL2: Motivating the Design of a Distributed,
Heterogeneous Programming System With Machine-Learning Applications.”
IEEE Transactions on Parallel and Distributed Systems, 2014
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |33
RUNNING
HADOOPCL
class PiMapper extends
DoubleDoubleBoolIntHadoopCLMap
per {
public void map(double x,
double y) {
if(x * x + y * y > 0.25) {
write(false, 1);
} else {
write(true, 1);
}
}
}
job.waitForCompletion(true);
$ javac .class
HadoopCL supports
‒Java syntax & MapReduce
abstractions
‒Dynamic memory allocation
‒A variety of data types
(primitives, sparse vectors,
tuples, etc.)
HadoopCL does not support
‒Arbitrary inputs, outputs
‒Object references
$ hadoop jar Pi.jar input output
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |34
$ hadoop jar Pi.jar
input output
NameNode
+
JobTracker
DataNode
Hadoop DataNode
Task
Map or
Reduce
DataNode
TaskTracker
Hadoop
CL Child
Hadoop
CL Child
Hadoop
CL Child
Hadoop
CL Child
HadoopCL ML
Device Scheduler
APU: CPU, GPU share work
HADOOPCL CLUSTER ARCHITECTURE
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |35
HadoopCL Child
Task
Map or
Reduce
Input
Aggregator
Buffer Runner
Input
Buffer
Store Kernel
Executor
Output
Buffer
Store
Launch
Retry
Output
Input
Buffer
Manager
Output
Buffer
Manager
HADOOPCL NODE ARCHITECTURE
Each Child JVM encloses
a data-driven pipeline of
communication and
computation tasks
Kernel Executor handles:
Auto-generation and optimization of
OpenCL kernels from JVM bytecode
Transfer of inputs, outputs to device
Asynch launch of OpenCL kernels
OpenCL
Device
HDFS
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |36
HCL2 EXECUTION FLOW
compile
JVM
runtime
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |37
EVALUATION
 Mahout Clustering
‒ Mahout provides Hadoop MapReduce
implementations of a variety of ML algorithms
‒ KMeans iteratively searches for K clusters
 Evaluated on 1 NameNode and 3 DataNodes in an AMD APU cluster
 Dataset built from the ASF e-mail archives
‒ ~1.4GB
‒ 1 iteration of searching for 64 clusters
‒ Recorded
overall execution time,
time spent on compute,
time spent on I/O in each mapper and reducer
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |38
MAHOUT EXAMPLES
 KMEANS
‒ Finds clusters
 FUZZY KMEANS
‒ Probabilistic “soft clusters”
 PAIRWISE SIMILARITY
‒ Recommender pipeline
 NAÏVE BAYES
 Probabilistic classifier
 DIRICHLET
‒ Finds document topics, cluster via probability distribution over ‘topics’
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |39
Speedup on AMD A10-7300 95w APU for 5 Mahout
Benchmarks
CPU bound
I/O bound
0
5
10
15
20
25
Kmeans Fuzzy Dirichlet Pairwise Bayes
Speedup over Mahout-CPU
Speedup over Mahout-CPU
EVALUATION
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |40
SCALABILITY
0
0.5
1
1.5
2
2.5
3
0 1 2 3 4 5
Speedup
Number of Nodes
kmeans
fuzzy
dirichlet
pairwise
bayes
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |41
FUTURE/ONGOING WORK
 Evaluation on more Mahout applications, more data sets, more platforms
‒ Xiangyu Li, Prof David Kaeli /Northeastern University :Mahout Recommenders
 Evaluate potential power savings
 In-depth analysis of effectiveness of machine learning on performance
 Target HSA instead of OpenCL, via Sumatra/APARAPI
 Various performance improvements
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |42
APACHE SPARK
 Fast, MapReduce-like engine
‒ In-memory storage abstraction for iterative/interactive queries
‒ General execution graphs
‒ Up to 100x faster than Hadoop MR
 Compatible with Hadoop’s storage APIs
‒ Can access HDFS, HBase, S3, SequenceFiles, etc.
 Great example of ML/Systems/DB collaboration
 http://spark.apache.org
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |43
SWAT
val rdd = CLWrapper.cl(sc.objectFile(inputPath))
val nextRdd = rdd.map(...)
...
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |44
SWAT
Device Management
Memory Allocation And Caching
GPU 0 GPU 1 GPU 2
SWAT-OpenCL Bridge
SWAT Serialization
APARAPI-SWAT (Code Generation)
SWAT RDD
JVM
Native/
OpenCL
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |45
SWAT
Big wins over HadoopCL:
• Built on Spark. And Scala.
• No HadoopCL-specific data structures required for representing complex data types
• User-defined classes w/ restrictions, MLlib DenseVector, Mllib SparseVector, Scala
Tuple2 for (key, value) pairs, Primitives
• Simpler semantics for some Spark parallel operations
• e.g. Spark map() forces one output per input, MapReduce allows arbitrary # of
outputs (though Spark has flatMap())
• Better locality, caching of on-device data based on broadcast, RDD IDs
• Simplified dynamic memory allocator on GPU
• More stable, nearing production-ready implementation.
• Max Grossman / Rice University
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |46
SWAT
Current benchmarks:
• Fuzzy CMeans, KMeans, Neural Net, Pagerank, Connected Components
Major Challenges:
• Architected as a third-party JAR, internal Spark state is hidden (unlike
HadoopCL)
• Garbage collection… Allocation patterns of a SWAT program are very different
from those of an equivalent Spark version
• Can we do better auto-scheduling than HadoopCL? Offline? Experiment with
other classification algorithms based on IBM work?
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |47
CONCLUSION
 HadoopCL offers the flexibility, reliability, and programmability of
Hadoop accelerated by native, heterogeneous OpenCL threads
 Using HadoopCL is a tradeoff: lose parts of the Java language but
gain improved performance
 Evaluation of KMeans with real-world data sets shows that
HadoopCL is flexible and efficient enough to improve performance
of real-world applications
Thanks: Max Grossman, max.grossman@rice.edu
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |48
RESOURCES
APARAPI
https://code.google.com/p/aparapi/
http://developer.amd.com/tools-and-sdks/opencl-zone/aparapi/
HADOOPCL paper
https://wiki.rice.edu/confluence/download/attachments/4425835/hpdic.pdf?versio
n=1&modificationDate=1366561784922&api=v2
HADOOP on GPU
http://www.slideshare.net/vladimirstarostenkov/star-hadoop-gpu
HADOOPCL presentation
https://www.youtube.com/watch?v=KMpjFsOO4nw
DEEP NEURAL NETWORK(DNN)
ACCELERATION ON AMD
ACCELERATORS
JUNLI GU, AMD RESEARCH
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |50
MACHINE LEARNING + BIG DATA INDUSTRY TREND
 Why machine learning for Big Data?
‒ Original human defined algorithms don’t work well for Big Data
‒ Competing in machine learning to understand Big Data
 DNN (deep neural networks) is breaking through & leading direction
‒ Large scale of image classification/recognition/search
‒ Face recognition, Online recommendation, Ads
‒ Documentation retrieval, Optical Character Recognition (OCR)
 Long list of companies looking for DNN solutions
DNN + Big Data is believed to be
the evolutionary trend for apps &
HPC systems.
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |51
DEEP LEARNING BRINGS CHALLENGES TO SYSTEM DESIGN
• Typical scale of data set
• Image search: 1M
• OCR: 100M
• Speech: 10B, CTR: 100B
• Projected data to grow 10X per year
• DNN model training time
• Weeks to months on GPU clusters
• Trained DNNs then deployed on cloud
• System is the final enabler
• Current platform runs into bottleneck
• CPU clusters  CPU + GPU clusters
• Looking at dGPUs, APUs, FPGAs, ASIC, etc.
DNN model
DNN compute & memory intensive, thus clusters
Big Data input Answer
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |52
WHAT HAVE WE DONE
 Focused on three major industry DNN algorithms
 CNN: Convolutional Neural Network (image/video classification)
‒ Reference Source: Univ. of Toronto CUDA version (http://github.com/bvlc/caffe)
‒ AMD implementation open sourced at https://github.com/amd/OpenCL-caffe
 Multi-layer Perceptron (Voice Recognition)
‒ Source: publications, interaction with industry experts and ISVs
‒ AMD implementation in C++, OpenCL
 Auto-encoder + L-BFGS training image and document retrieval)
‒ Reference Source: Stanford Univ. Matlab code
(http://ai.stanford.edu/~quocle/nips2011challenge/)
‒ AMD implementation in C++, OpenCL
‒ CPU and GPU computing interact frequently
BASED ON TODAY’S INDUSTRY
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |53
EVALUATION METHODOLOGY AND PLATFORMS
 Implementations based on commercial BLAS libraries
‒ Mainstream X86 CPUs: C++ & math library
‒ AMD APUs & GPUs: OpenCL & CLAMDBLAS
‒ Mainstream GPU: CUDA C & CUBLAS (for competitive purposes)
 Platforms
Device Category Device Name
Throughput
(GFLOPS)
Price
(USD)
TDP
(Watt)
CPU
version
AMD OCL
version
CUDA
version
Note
CPU Mainstream x86 848 360 84 √ √ Realtime power traces
APU series
AMD APU A10-7850k 856 204 95 √ Realtime power traces
AMD APU A10-8700p 150 35 √ NA
Mainstream x86 SOC 848 360 84 √ Realtime power traces
GPU
AMD Radeon HD7970 3788.8 322 250 √ TDP used
Mainstream GPU 3977 612 250 √ √ TDP used
W9100 4096 6000 250 √ TDP used
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |54
IMAGE RECOGNITION SPEED
 Usually real time image recognition speed constraint is 30 frames per second
(fps), 30 ms per image
 The CPU (4-thread) can’t meet real time constrains, best 10 fps
 APU can compute up to 84 fps (8x faster than the CPU)
 Discrete GPU vs APU, 2x-3x faster for small (1-8) and big (256) batch size, 4x-5x
faster for medium (6-128 ) batch size
Large scale object recognition
0
500
1000
1500
2000
2500
3000
1 2 4 8 16 32 64 128 256
LatencyofEachBatch(ms)
Batch Size
Image recognition latency (CAFFE CNN model,
256*256 ImageNet data)
APU's CPU(4 thread)
APU's GPU
AMD Radeon W9000 GPU
Real time constraints
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |55
MLP MODEL (VOICE RECOGNITION)
• APU vs. Mainstream x86
1.8x speedup
• APU vs. Mainstream x86 SOC’s
3.7x speedup
Mini-batch size: 1024
CPU prepares data, GPU computes
A10-7850k Mainstream Mainstream AMD Radeon Mainstream
x86 x86 SoC HD7970 GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |56
POWER/PERF_PER_WATT
1
0.3
0.22
0.7
0.8
1
1.9
1.3
7.3 7.3
0
1
2
3
4
5
6
7
8
0
0.2
0.4
0.6
0.8
1
1.2
A10-7850K Mainstream
x86
Mainstream
x86 SOC's
AMD HD7970 Mainstream
GPU
SpeedandPower(normalizedtoAPU)
Perf.PerWatt(normalizedtoAPU)
Performance Per Watt Ratio Power Ratio
 APU achieves the highest Performance/Watt E.g. 1.2x compared to GPU
 GPU achieves 5x performance with 7x power
 CPU gets 60% performance with 1.9x power
A10-7850k Mainstream Mainstream AMD Radeon Mainstream
x86 x86 SoC HD7970 GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |57
AUTOENCODER (IMAGE AND DOCUMENT RETRIEVAL)
• Algorithm is mix of
CPU+GPU compute
• APU vs. Mainstream x86
8% slow down
• APU vs. Mainstream x86
SOC’s
3.8x speedup
 The larger the batch size
is, the bigger advantage
APU presents.
Data: CIFAR10, Mini-batch size: 2048
CPU: L-BFGS; GPU: Autoencoder forward and backward
propagation
A10-7850k Mainstream Mainstream AMD Radeon Mainstream
x86 x86 SoC HD7970 GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |58
POWER/PERF_PER_WATT
 APU achieves the highest Performance/Watt E.g. 2x compared to dGPU
 GPU achieves 2x performance with 5x power
 CPU gets 90% performance with 1.4x power
1
0.65
0.3
0.46
0.5
1
1.4
0.9
4.8 4.8
0
1
2
3
4
5
6
0
0.2
0.4
0.6
0.8
1
1.2
A10-7850K Mainstream
x86
Mainstream
x86 SOC's
AMD HD7970 Mainstream
GPU
SpeedandPower(normalizedtoAPU)
Perf.PerWatt(normalizedtoAPU)
Performance Per Watt Ratio Power Ratio
A10-7850k Mainstream Mainstream AMD Radeon Mainstream
x86 x86 SoC HD7970 GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |59
REAL CASE TRAINING
 MNIST Training through MLP Model
‒Handwritten digits , 60000 images
‒Mini-batch size 1024, 200 epochs
APU A10-7850 GPU HD7970 GPU vs. APU
Training
Process
Time 362 second 192 second 1.9x speedup
Average Power 47 Watt 250 Watt 5.3x power
Energy 17k Joule 40k Joule 2.4x energy
Predicting
Process
Time 8.1 second 3.5 second 2.3x speedup
Average Power 37 Watt 250 Watt 6.8x power
Energy 300 Joule 875 Joule 2.9x energy
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |60
PUBLIC RELEASE OF OPENCL-CAFFE
 We open sourced OpenCL-caffe framework
‒ Welcome everyone to join us in improving on APU or other research
 Users only need to provide CNN framework, parameters and training samples.
‒ Framework will train automatically
HTTPS://GITHUB.COM/AMD/OPENCL-CAFFE
‒Contain three modules:
‒ Preprocess the image data by LevelDB
and Protocol Buffer. Convert
convolutional computations into matrix
operation and use CLBLAS to accelerate
‒ CPU is responsible for data processing
and main loop iteration
‒ GPU device is responsible for major
kernel computation
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |61
CONCLUSIONS
 For DNN domain:
 APUs achieve up to 2x higher performance per watt efficiency, compared to
mainstream GPUs
‒ For auto-encoder, GPU consumes 5.3x more power to achieve 2.4x speedup
 APUs offer the most compelling performance/ watt and performance / $$
 Architectural advantages:
‒ APUs have very large unified address space
‒ Remove GPU's device memory limitation and data transfer bottleneck, which suits
better for Big Data inputs
A PRACTICAL IMPLEMENTATION
OF BREADTH-FIRST SEARCH
ON HETEROGENEOUS PROCESSORS
MAYANK DAGA
AMD RESEARCH
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |63
BREADTH-FIRST SEARCH (BFS)
 BFS is a fundamental primitive used several in graph applications
‒ Social network analysis
‒ Recommendation systems
‒ Graph500 benchmark
(www.graph500.org)
 Cybersecurity, Medical Informatics,
 Data Enrichment, Social Networks, and Symbolic Networks
 Accelerating BFS can provide widespread advantages given its pervasive
deployment
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |64
BREADTH-FIRST SEARCH - 101
1
Top-Down BFS
visited nodes find their unvisited children
1 visited node
unvisited node
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |65
BFS AND GPUS
 Breadth-first search is not a GPU-friendly application
‒ Load imbalance
‒ Irregular memory access patterns
 Recent work has demonstrated a credible BFS implementation2
‒ Tracks level or depth of nodes
 Does not create a BFS-tree as required by Graph500
‒ Does not have widespread use
[1] D. Merrill, M. Garland, and A. Grimshaw. “Scalable gpu graph
traversal”. In Proceedings of the 17th ACM SIGPLAN Symposium on
Principles and Practice of Parallel Programming, PPoPP ’12, New York, NY,
USA, 2012.
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |66
BREADTH-FIRST SEARCH - 201
1
[2] S. Beamer, K. Asanovic, and D. Patterson, “Direction optimizing
breadth-first search”. In Proceedings of the International Conference on
High Performance Computing, Networking, Storage and Analysis, SC ’12.
Bottom-Up BFS
unvisited nodes find their visited parent
1 visited node
unvisited node
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |67
NO ALGORITHM OR PLATFORM IS A PANACEA FOR BFS
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1.60
TDO-CPU BUP-CPU TDO-GPU BUP-GPU
NormalizedPerf.w.r.t.TDO-CPU
Wikipedia GreatBritain
O
P
T
I
M
A
L
O
P
T
I
M
A
L
TDO – Top-Down BFS
BUP – Bottom-Up BFS
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |68
HYBRID++ BFS TRAVERSAL ALGORITHM
 Top-Down
 Bottom-Up
HYBRID GRAPH TRAVERSAL TECHNIQUE1
 AMD Accelerated Processing Unit
(APU)
Hybrid Platform of Execution
1
1
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |69
OUTLINE
 Introduction
 Optimal platform and optimal algorithm
 Why APU
 GPU accelerated Bottom-Up BFS
 Results
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |70
OPTIMAL PLATFORM FOR HYBRID ALGORITHM
Top-Down Algorithm
Bottom-Up Algorithm
 Amount of parallelism is limited
 Suitable for initial and final iterations
 Ideal for CPU
 Amount of parallelism is abundant
 Suitable for intermediate iterations
 Ideal for GPU
1
1
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |71
0
1
2
3
4
5
6
7
kron rmat wiki flickr erdos_1.5 nlpkkt120 co_papers
CopyTimevsKernelTime
Graphs
HYBRID++ ON DISCRETE GPU
WHY APU?
Bottom-Up
(on dGPU)
Top-Down
(on CPU)
Start BFS
Use online heuristic
copy_data()
copy_data()
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |72
Accelerated Processing Unit (APU)
ACCELERATING BFS USING HYBRID++ ALGORITHM
Graph resides in system memory
CPU
Top-
Down
GPU
Bottom-
Up
Start BFS
Use online heuristic
Heuristic comprises of #edges, #nodes, avg. degree of graph
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |73
BOTTOM-UP BFS
 Consecutive GPU threads map to consecutive vertices
unvisited nodes find their visited parent
function bottom-up-step()
for all the vertices in the graph
has the vertex, ‘v’, been visited?
if not visited, for all the neighbors of ‘v’
has the neighbor, ‘n’ been visited?
if yes, ‘n’ is the parent of ‘v’
update data structures
Load imbalance
Scattered reads
Atomic update
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |74
EXPERIMENTAL SETUP
 AMD A10-7850K “Kaveri” APU
‒ Quad-core CPU + 8 GCN Compute Units with 95W TDP
 Variety of input graphs
‒ 0.5 million to 14 million nodes
‒ 8 million to 134 million edges
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |75
0
2
4
6
8
10
12
14
16
18
20
kron rmat wiki flickr erdos_1.5 gb co_papersliveJournal orkut geo_mean
Speedup
Graphs
Hybrid (CPU) Hybrid++ (CPU+GPU)
PERFORMANCE OF HYBRID++ ON AMD A10-7850K APU
 Speedup by
‒algorithmic improvements: ~10x (best) and ~3.6x (avg.)
‒algorithmic + platform improvements: ~20x (best) and ~5.6x (avg.)
Y-axis represents speedup over the 4-core OpenMP reference BFS algorithm in Graph500
2x
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |76
CPU SCALING
 Experiment was conducted using CPUs of AMD A10 7850K “Kaveri” APU
 Performance depicted is the geometric mean of various inputs
‒ Performance does not scale linearly
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
1-core 2-core 4-core
Performancew.r.t.single-core
Actual Performance Ideal Scaling
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |77
HYBRID++ TRULY UTILIZES BOTH CPU AND GPU
37.21
62.79
26.07
73.93
9.62
90.38
3.68
96.32
5.14
94.86
6.56
93.44
erdos_1.5 wiki orkut
rmat live_journal kron
CPU GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |78
SCALABILITY OF HYBRID++
 Scales well with both #nodes and #edges
 Particularly beneficial to social-network type graphs
(top-right corner)
0.0
0.5
1.0
1.5
2.0
2.5
3.0
8 16 32 64
TraversedEdges/Sec(Billion)
Number of Incident-Edges on Each Node
1M 2M 4M 8M
The legend depicts the number of nodes in the graph in million
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |79
APU VS DISCRETE GPU
AGAIN WHY APU
Limit on the size of input for discrete GPU
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |80
ENERGY CONSUMPTION ON APU VS DISCRETE GPU
0
0.5
1
1.5
2
2.5
amazon coPapers erdos_1.5 flickr kron23 liveJournal orkut rmat23 wikipedia geo_mean
EnergynormalizedtoAPU
Y-axis represents performance per watt over Graph500 implementation on the APU
On avg. the discrete GPU consumes 80% more energy
Graph
Processing
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |82
PANNOTIA BENCHMARK SUITE
 A collection of OpenCL implementations of graph algorithms
 Sample algorithms include:
HTTPS://GITHUB.COM/PANNOTIA/PANNOTIA
Betweenness Centrality Graph Coloring
Single-Source Shortest Path (SSSP) All-Pairs Shortest Path (Floyd-Warshall)
Maximal Independent Set PageRank
On avg. the APU achieves 2.7x speedup over four CPU cores
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |83
BELRED
 Heterogeneous graph processing using sparse linear algebra building blocks
 Important routines include: SpMV, min.+, SpGeMM, element-wise operations,
segmented reduce, etc.
‒ Inspired by Kepner and Gilbert. Graph Algorithms in the Language of Linear Algebra
ith iteration of a BFS using SpMV
Graph Visited Frontier
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |84
GASCL
 Scale heterogeneous graph applications to multiple nodes
 System development using a model similar to GraphLab, Pregel, etc.
 Users develop graph applications in vertex-centric, gather, apply and scatter
kernels
LARGE-SCALE GRAPH SYSTEMS
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |85
CONCLUSION
 Large-scale data analytics and heterogeneous compute are the future present
 Heterogeneous computing can
‒ Reduce power consumption in smart phones, tablets and the data center
‒ Provide compelling new user experiences by improved performance
 AMD is pioneering the advancement of heterogeneous compute
‒ Open standards
‒ Easy to program
 Partner with us … Collaborate with us …
Mayank.Daga@amd.com Mauricio.Breternitz@amd.com Junli.Gu@amd.com
— Machine learning — Deep neural networks
— Graph processing — Open to other verticals
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |86
DISCLAIMER & ATTRIBUTION
The information presented in this document is for informational purposes only and may contain technical inaccuracies,
omissions and typographical errors.
The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but
not limited to product and roadmap changes, component and motherboard version changes, new model and/or
product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware
upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However,
AMD reserves the right to revise this information and to make changes from time to time to the content hereof without
obligation of AMD to notify any person of such revisions or changes.
AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO
RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION.
AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER
CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS
EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
ATTRIBUTION
© 2015 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo, AMD Radeon, AMD Catalyst, and
combinations thereof are trademarks of Advanced Micro Devices, Inc. in the United States and/or other jurisdictions.
OpenCL is a trademark of Apple Inc. used by permission by Khronos. Other names are for informational purposes only
and may be trademarks of their respective owners.
| OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |87
WHY APUS - DATA TRANSFER OVERHEADS
 How to avoid data copy through the zero-copy technique on APUs?
‒ APU: Zero-copy improves performance by 10%
‒ GPUs: Zero-copy degrades performance by 3.5x for AMD GPU and 8.7x for
Competitor GPU
Zero-copy technique:
GPUs: GPU accesses host
memory through PCIe, slow
APUs: CPU and GPU share
the same piece of memory,
efficient
Experiment design:
CPU initializes 2k x 2k
matrixes
(A, B), GPU performs C=A*B
Matrix multiplication performance comparison among copy and zero-copy
45
41
19
67
23
199
0
10
20
30
40
50
60
70
80
90
100
110
120
Copy Zero Copy Copy Zero Copy Copy Zero Copy
Kaveri HD7970 Mainstream GPU
ExecutionTime(ms)
Kernel Data Transfer

More Related Content

What's hot

Revisiting Co-Processing for Hash Joins on the Coupled Cpu-GPU Architecture
Revisiting Co-Processing for Hash Joins on the CoupledCpu-GPU ArchitectureRevisiting Co-Processing for Hash Joins on the CoupledCpu-GPU Architecture
Revisiting Co-Processing for Hash Joins on the Coupled Cpu-GPU Architecture
mohamedragabslideshare
 
Parallel computing with Gpu
Parallel computing with GpuParallel computing with Gpu
Parallel computing with Gpu
Rohit Khatana
 
High performance computing
High performance computingHigh performance computing
High performance computing
Guy Tel-Zur
 

What's hot (20)

HC-4012, Complex Network Clustering Using GPU-based Parallel Non-negative Mat...
HC-4012, Complex Network Clustering Using GPU-based Parallel Non-negative Mat...HC-4012, Complex Network Clustering Using GPU-based Parallel Non-negative Mat...
HC-4012, Complex Network Clustering Using GPU-based Parallel Non-negative Mat...
 
Programmable Exascale Supercomputer
Programmable Exascale SupercomputerProgrammable Exascale Supercomputer
Programmable Exascale Supercomputer
 
High performance computing tutorial, with checklist and tips to optimize clus...
High performance computing tutorial, with checklist and tips to optimize clus...High performance computing tutorial, with checklist and tips to optimize clus...
High performance computing tutorial, with checklist and tips to optimize clus...
 
Distributed Processing Frameworks
Distributed Processing FrameworksDistributed Processing Frameworks
Distributed Processing Frameworks
 
Slides for In-Datacenter Performance Analysis of a Tensor Processing Unit
Slides for In-Datacenter Performance Analysis of a Tensor Processing UnitSlides for In-Datacenter Performance Analysis of a Tensor Processing Unit
Slides for In-Datacenter Performance Analysis of a Tensor Processing Unit
 
GPU and Deep learning best practices
GPU and Deep learning best practicesGPU and Deep learning best practices
GPU and Deep learning best practices
 
Google TPU
Google TPUGoogle TPU
Google TPU
 
Hadoop World 2011: Next Generation Apache Hadoop MapReduce - Mohadev Konar, H...
Hadoop World 2011: Next Generation Apache Hadoop MapReduce - Mohadev Konar, H...Hadoop World 2011: Next Generation Apache Hadoop MapReduce - Mohadev Konar, H...
Hadoop World 2011: Next Generation Apache Hadoop MapReduce - Mohadev Konar, H...
 
Hadoop World 2011: Hadoop Network and Compute Architecture Considerations - J...
Hadoop World 2011: Hadoop Network and Compute Architecture Considerations - J...Hadoop World 2011: Hadoop Network and Compute Architecture Considerations - J...
Hadoop World 2011: Hadoop Network and Compute Architecture Considerations - J...
 
GPU Programming with Java
GPU Programming with JavaGPU Programming with Java
GPU Programming with Java
 
2017 04-13-google-tpu-04
2017 04-13-google-tpu-042017 04-13-google-tpu-04
2017 04-13-google-tpu-04
 
GPU Computing
GPU ComputingGPU Computing
GPU Computing
 
Revisiting Co-Processing for Hash Joins on the Coupled Cpu-GPU Architecture
Revisiting Co-Processing for Hash Joins on the CoupledCpu-GPU ArchitectureRevisiting Co-Processing for Hash Joins on the CoupledCpu-GPU Architecture
Revisiting Co-Processing for Hash Joins on the Coupled Cpu-GPU Architecture
 
Performance Characterization and Optimization of In-Memory Data Analytics on ...
Performance Characterization and Optimization of In-Memory Data Analytics on ...Performance Characterization and Optimization of In-Memory Data Analytics on ...
Performance Characterization and Optimization of In-Memory Data Analytics on ...
 
Introduction to High-Performance Computing (HPC) Containers and Singularity*
Introduction to High-Performance Computing (HPC) Containers and Singularity*Introduction to High-Performance Computing (HPC) Containers and Singularity*
Introduction to High-Performance Computing (HPC) Containers and Singularity*
 
Parallel computing with Gpu
Parallel computing with GpuParallel computing with Gpu
Parallel computing with Gpu
 
High performance computing with accelarators
High performance computing with accelaratorsHigh performance computing with accelarators
High performance computing with accelarators
 
LCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience Report
 
Parallel Computing on the GPU
Parallel Computing on the GPUParallel Computing on the GPU
Parallel Computing on the GPU
 
High performance computing
High performance computingHigh performance computing
High performance computing
 

Similar to Big_Data_Heterogeneous_Programming IEEE_Big_Data 2015

Rapids: Data Science on GPUs
Rapids: Data Science on GPUsRapids: Data Science on GPUs
Rapids: Data Science on GPUs
inside-BigData.com
 
Open Source RAPIDS GPU Platform to Accelerate Predictive Data Analytics
Open Source RAPIDS GPU Platform to Accelerate Predictive Data AnalyticsOpen Source RAPIDS GPU Platform to Accelerate Predictive Data Analytics
Open Source RAPIDS GPU Platform to Accelerate Predictive Data Analytics
inside-BigData.com
 

Similar to Big_Data_Heterogeneous_Programming IEEE_Big_Data 2015 (20)

Accelerating Data Science With GPUs
Accelerating Data Science With GPUsAccelerating Data Science With GPUs
Accelerating Data Science With GPUs
 
Panel: NRP Science Impacts​
Panel: NRP Science Impacts​Panel: NRP Science Impacts​
Panel: NRP Science Impacts​
 
IS-4082, Real-Time insight in Big Data – Even faster using HSA, by Norbert He...
IS-4082, Real-Time insight in Big Data – Even faster using HSA, by Norbert He...IS-4082, Real-Time insight in Big Data – Even faster using HSA, by Norbert He...
IS-4082, Real-Time insight in Big Data – Even faster using HSA, by Norbert He...
 
Rapids: Data Science on GPUs
Rapids: Data Science on GPUsRapids: Data Science on GPUs
Rapids: Data Science on GPUs
 
NVIDIA Rapids presentation
NVIDIA Rapids presentationNVIDIA Rapids presentation
NVIDIA Rapids presentation
 
Webinar: Cutting Time, Complexity and Cost from Data Science to Production
Webinar: Cutting Time, Complexity and Cost from Data Science to ProductionWebinar: Cutting Time, Complexity and Cost from Data Science to Production
Webinar: Cutting Time, Complexity and Cost from Data Science to Production
 
Open Source RAPIDS GPU Platform to Accelerate Predictive Data Analytics
Open Source RAPIDS GPU Platform to Accelerate Predictive Data AnalyticsOpen Source RAPIDS GPU Platform to Accelerate Predictive Data Analytics
Open Source RAPIDS GPU Platform to Accelerate Predictive Data Analytics
 
Big Data LDN 2017: BI Converges with AI - GPUs for Fast Data
Big Data LDN 2017: BI Converges with AI - GPUs for Fast DataBig Data LDN 2017: BI Converges with AI - GPUs for Fast Data
Big Data LDN 2017: BI Converges with AI - GPUs for Fast Data
 
Trends towards the merge of HPC + Big Data systems
Trends towards the merge of HPC + Big Data systemsTrends towards the merge of HPC + Big Data systems
Trends towards the merge of HPC + Big Data systems
 
GOAI: GPU-Accelerated Data Science DataSciCon 2017
GOAI: GPU-Accelerated Data Science DataSciCon 2017GOAI: GPU-Accelerated Data Science DataSciCon 2017
GOAI: GPU-Accelerated Data Science DataSciCon 2017
 
Shikha fdp 62_14july2017
Shikha fdp 62_14july2017Shikha fdp 62_14july2017
Shikha fdp 62_14july2017
 
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
 
Cloud Computing ...changes everything
Cloud Computing ...changes everythingCloud Computing ...changes everything
Cloud Computing ...changes everything
 
GPU 101: The Beast In Data Centers
GPU 101: The Beast In Data CentersGPU 101: The Beast In Data Centers
GPU 101: The Beast In Data Centers
 
GPU accelerated Large Scale Analytics
GPU accelerated Large Scale AnalyticsGPU accelerated Large Scale Analytics
GPU accelerated Large Scale Analytics
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?
 
Pivotal Digital Transformation Forum: Journey to Become a Data-Driven Enterprise
Pivotal Digital Transformation Forum: Journey to Become a Data-Driven EnterprisePivotal Digital Transformation Forum: Journey to Become a Data-Driven Enterprise
Pivotal Digital Transformation Forum: Journey to Become a Data-Driven Enterprise
 
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
 
Real-time processing of large amounts of data
Real-time processing of large amounts of dataReal-time processing of large amounts of data
Real-time processing of large amounts of data
 
Cloud-Native Patterns for Data-Intensive Applications
Cloud-Native Patterns for Data-Intensive ApplicationsCloud-Native Patterns for Data-Intensive Applications
Cloud-Native Patterns for Data-Intensive Applications
 

Big_Data_Heterogeneous_Programming IEEE_Big_Data 2015

  • 1. OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS MAYANK DAGA, MAURICIO BRETERNITZ, JUNLI GU AMD RESEARCH
  • 2. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |2 HETEROGENEOUS PROCESSORS - EVERYWHERE SMARTPHONES TO SUPER-COMPUTERS Phone Tablet Notebook Workstation Dense Server Super computer From Phil Rogers APU13 Keynote
  • 3. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |3 35 YEARS OF MICROPROCESSOR TREND DATA Homogeneous processors
  • 4. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |4 IMPORTANT SHIFTS 2004 - 2005 2007 - 2008 2010 - 2011 GPU CPU The Era of Heterogeneous Computing Is Here !
  • 5. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |5 CENTRAL PROCESSING UNIT (CPU)  Few BIG cores  Ideal for scalar & control-intensive parts of application
  • 6. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |6  Lots of small cores  Resides over the PCIe bus  Ideal for data-parallel parts of the application GRAPHICS PROCESSING UNIT (GPU)
  • 7. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |7 GPU Dual x86 CPU Module  A heterogeneous platform with CPU+GPU on the same silicon die  Ideal for both serial and data-parallel parts of application  TDP of less than 100 Watts ACCELERATED PROCESSING UNIT (APU) Data-parallel Serial
  • 8. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |8 HOW IS AN APU DIFFERENT  Manage data-movement across PCIe®  Use local scratchpad memory (cache)CPU PCIe 16 GB/s 300-500 GB/s GPU LDS CPU GPU LDS  No data-movement overhead  Programming is similar to discrete GPU but simpler Sys. Mem Sys. Mem Accelerated Processing Unit (APU)
  • 9. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |9 MODERN WORKLOADS ARE HETEROGENEOUS  Video is expected to represent two thirds of mobile data traffic by 2017 ‒ Video processing is inherently parallel … and can be accelerated  Big data growing exponentially with exabytes of data crawled monthly ‒ Map reduce is a heterogeneous workload  Rapid growth of Sensor Networks ‒ Drives exponential increase in data  Internet of Things (IoT) results in explosion of data sources ‒ Another exponential growth in data at local and cloud level SCALAR CONTENT WITH A GROWING MIX OF PARALLEL CONTENT
  • 10. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |10 HETEROGENEOUS SYSTEM ARCHITECTURE (HSA) CPU 1 CPU 2 CPU N CU 1 CU 2 CU 3 CU M-1 CU M … … Unified Coherent Memory All processors use same memory addresses Full access to virtual and physical memory Power efficient Easy to program
  • 11. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |11 Large amounts of data stored in cloud Needs to be analyzed quickly Different types of structured and unstructured data LARGE-SCALE DATA ANALYTICS & HETEROGENEOUS COMPUTE (HC) HC makes the cloud energy-efficient GPU provides the computational horsepower A heterogeneous platform for the heterogeneous data 47% GPU
  • 13. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |13 HSA IL HSA Kernel Driver HSA Core Runtime HSA Finalizer HSA Helper Libraries OpenCL™ App OpenCL Runtime OpenMP App Various Runtimes Python App Various Runtimes C++ AMP App Various Runtimes PROGRAMMING LANGUAGES PROLIFERATING ON APU
  • 14. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |14 C++ AMP OpenCL Performance Productivity
  • 15. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |15 WHAT IS OPENCL  OPEN Computing Language ‒ Open standard managed by the Khronos Group  Platform Agnostic --- CPUs, GPUs, FPGAs, DSPs OpenCL™ Architecture – Platform Model Host Compute Device Compute UnitProcessing Element
  • 16. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |16 OPENCL: EXECUTION MODEL  Host Program ‒ Executes on the host (usually a CPU) ‒ Sends commands to the compute devices using a queue  Kernel ‒ Basic unit of executable code which runs on compute devices ‒ A grid of parallel threads execute the kernel on the compute device AMD Group of threads executing on the same GPU core Individual threads
  • 17. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |17 CODE EXAMPLE for loop { // do work; } kernel { // do work; } 1. OpenCL Initialization 2. Allocate memory 3. Data_copy_GPU 4. Launch GPU Kernel 5. Data_copy_Host Host-side code Device-side code
  • 18. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |18 GETTING STARTED RESOURCES (OPENCL)  AMD APP Programming SDK ‒ http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel- processing-app-sdk/  AMD APP Programming Guide ‒ http://amd-dev.wpengine.netdna- cdn.com/wordpress/media/2013/12/AMD_OpenCL_Programming_User_Guide2.pdf ‒ http://amd-dev.wpengine.netdna- cdn.com/wordpress/media/2013/12/AMD_OpenCL_Programming_Optimization_Guid e2.pdf  Works for both Windows and Linux
  • 19. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |19 C++ AMP  C++, not C  Mainstream: programmed by millions  Minimal: just one language extension  Portable: mix and match hardware from any vendor  General and Future Proof: designed to cover full-range of heterogeneity
  • 20. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |20 parallel_for_each(num_threads, [=] (t_idx) { // do work; } ); CODE EXAMPLE + Combination of library and extensions to C++ standard + Single-source + Substantially boosts programmer productivity - No asynchronous data-transfers for loop { // do work; }
  • 21. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |21 GETTING STARTED RESOURCES (C++ AMP)  Compiler and runtime ‒ https://bitbucket.org/multicoreware/cppamp-driver-ng/wiki/Home ‒ Microsoft Visual Studio  Programming Guide ‒ https://msdn.microsoft.com/en-us/library/hh265136.aspx  Works for both Windows and Linux
  • 22. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |22 PERFORMANCE App1 App2 App3 App4 Geo Mean Performance OpenCL C++ AMP 2x Daga et al. IISWC 2015
  • 23. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |23 PRODUCTIVITY App1 App2 App3 App4 Geo Mean Productivity OpenCL C++ AMP 3x Daga et al. IISWC 2015
  • 24. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |24 SUPPORT FOR POPULAR LIBRARIES  Computer Vision ‒ OpenCV  Data Science ‒ SciPy ‒ NumPy  Image Processing ‒ ImageMagick  Parallel Standard Template Library ‒ Bolt  Linear Algebra Library ‒ AMD clBLAS
  • 25. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |25 OUR THREE-PRONGED APPROACH TO DATA ANALYTICS  Enhancing Programming Model ‒ HadoopCL and Apache Spark: flexibility, reliability, and programmability of Hadoop accelerated by OpenCL  Enhancing Data Operations ‒ Deep Neural Networks: achieved 2x energy efficiency on the APU than discrete GPUs ‒ Breadth-first Search: fastest single-GPU Graph500 implementation (June 2014) ‒ SpMV: state-of-the-art CSR-based SpMV (13x faster than prior CSR-SpMV and 2x faster than other storage formats  Enhancing Data Organization ‒ In-Memory B+ Trees: efficient memory reorganization to achieve 3x speedup on the APU over a multicore implementation
  • 26. NESTED PROCESSING OF MACHINE LEARNING MAP-REDUCE, BIG DATA ON APUS MAURICIO BRETERNITZ, PH.D. AMD RESEARCH TECHNOLOGY & ENGINEERING GROUP AMD thanks: Max Grossman, Vivek Sarkar
  • 27. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |27 MapReduce in 30 seconds: Estimating PI 1- pick random points in unit rectangle 2- count fraction inside circle Area: π/ 4 Map-Reduce: Map: random point inside? Issue k=1, v=1 else k=0,v=1 Reduce: count 0 keys and count 1 keys Programmer: writes { map, reduce } methods, system does rest
  • 28. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |28 • Open source implementation of MapReduce programming model • Runs on distributed network in several Java VMs • Distributed file system, reliability guarantees, speculative execution, Java programming language and libraries, implicit parallelism Map Map Map V1 V2 V3 Reduce Reduce V1 V2 V3 barrier HADOOP
  • 29. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |29 TARGET ARCHITECTURE  Target: CLUSTER of APUs  Two-Level Parallelism: ‒ Across nodes in cluster ‒ Within Node (APU) ‒ Multicore (CPU) ‒ Data parallel(GPU)
  • 30. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |30 NESTED PROCESSING APPROACH PARTITION WORK LOCALLY COMBINE RESULTS nest: CPU+GPU
  • 31. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |31 WHY APUS – MAP REDUCE-REDUCE Map Map Map V1 V2 V3 Reduce Reduce V1 V2 V3 barrier Map Map Map V1 V2 V3 Reduce Reduce V1 V2 V3 Map Map Map V1 V2 V3 Reduce Reduce V1 V2 V3 Reduce Reduce V1 V2 V3 Reduce Reduce V1 V2 V3 Reduce Reduce V1 V2 V3 SPLIT: enough work for one GPU NO MEMORY LIMIT CPU+GPU execution CPU+GPU execution on each node Final reduction in cluster Aggregate node’s results Network
  • 32. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |32 HadoopCL MapReduce on Distributed Heterogeneous Platforms Through Seamless Integration of Hadoop and OpenCL Max Grossman1, Mauricio Breternitz2, Vivek Sarkar1 1Rice University, 2AMD Research 2013 International Workshop on High Performance Data Intensive Computing. May 2013. Implemented with AMD’s APARAPI: • Java methods -> GPU HADOOPCL Collaboration with Rice University: M. Grossman, M. Breternitz, V. Sarkar. “HadoopCL2: Motivating the Design of a Distributed, Heterogeneous Programming System With Machine-Learning Applications.” IEEE Transactions on Parallel and Distributed Systems, 2014
  • 33. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |33 RUNNING HADOOPCL class PiMapper extends DoubleDoubleBoolIntHadoopCLMap per { public void map(double x, double y) { if(x * x + y * y > 0.25) { write(false, 1); } else { write(true, 1); } } } job.waitForCompletion(true); $ javac .class HadoopCL supports ‒Java syntax & MapReduce abstractions ‒Dynamic memory allocation ‒A variety of data types (primitives, sparse vectors, tuples, etc.) HadoopCL does not support ‒Arbitrary inputs, outputs ‒Object references $ hadoop jar Pi.jar input output
  • 34. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |34 $ hadoop jar Pi.jar input output NameNode + JobTracker DataNode Hadoop DataNode Task Map or Reduce DataNode TaskTracker Hadoop CL Child Hadoop CL Child Hadoop CL Child Hadoop CL Child HadoopCL ML Device Scheduler APU: CPU, GPU share work HADOOPCL CLUSTER ARCHITECTURE
  • 35. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |35 HadoopCL Child Task Map or Reduce Input Aggregator Buffer Runner Input Buffer Store Kernel Executor Output Buffer Store Launch Retry Output Input Buffer Manager Output Buffer Manager HADOOPCL NODE ARCHITECTURE Each Child JVM encloses a data-driven pipeline of communication and computation tasks Kernel Executor handles: Auto-generation and optimization of OpenCL kernels from JVM bytecode Transfer of inputs, outputs to device Asynch launch of OpenCL kernels OpenCL Device HDFS
  • 36. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |36 HCL2 EXECUTION FLOW compile JVM runtime
  • 37. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |37 EVALUATION  Mahout Clustering ‒ Mahout provides Hadoop MapReduce implementations of a variety of ML algorithms ‒ KMeans iteratively searches for K clusters  Evaluated on 1 NameNode and 3 DataNodes in an AMD APU cluster  Dataset built from the ASF e-mail archives ‒ ~1.4GB ‒ 1 iteration of searching for 64 clusters ‒ Recorded overall execution time, time spent on compute, time spent on I/O in each mapper and reducer
  • 38. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |38 MAHOUT EXAMPLES  KMEANS ‒ Finds clusters  FUZZY KMEANS ‒ Probabilistic “soft clusters”  PAIRWISE SIMILARITY ‒ Recommender pipeline  NAÏVE BAYES  Probabilistic classifier  DIRICHLET ‒ Finds document topics, cluster via probability distribution over ‘topics’
  • 39. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |39 Speedup on AMD A10-7300 95w APU for 5 Mahout Benchmarks CPU bound I/O bound 0 5 10 15 20 25 Kmeans Fuzzy Dirichlet Pairwise Bayes Speedup over Mahout-CPU Speedup over Mahout-CPU EVALUATION
  • 40. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |40 SCALABILITY 0 0.5 1 1.5 2 2.5 3 0 1 2 3 4 5 Speedup Number of Nodes kmeans fuzzy dirichlet pairwise bayes
  • 41. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |41 FUTURE/ONGOING WORK  Evaluation on more Mahout applications, more data sets, more platforms ‒ Xiangyu Li, Prof David Kaeli /Northeastern University :Mahout Recommenders  Evaluate potential power savings  In-depth analysis of effectiveness of machine learning on performance  Target HSA instead of OpenCL, via Sumatra/APARAPI  Various performance improvements
  • 42. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |42 APACHE SPARK  Fast, MapReduce-like engine ‒ In-memory storage abstraction for iterative/interactive queries ‒ General execution graphs ‒ Up to 100x faster than Hadoop MR  Compatible with Hadoop’s storage APIs ‒ Can access HDFS, HBase, S3, SequenceFiles, etc.  Great example of ML/Systems/DB collaboration  http://spark.apache.org
  • 43. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |43 SWAT val rdd = CLWrapper.cl(sc.objectFile(inputPath)) val nextRdd = rdd.map(...) ...
  • 44. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |44 SWAT Device Management Memory Allocation And Caching GPU 0 GPU 1 GPU 2 SWAT-OpenCL Bridge SWAT Serialization APARAPI-SWAT (Code Generation) SWAT RDD JVM Native/ OpenCL
  • 45. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |45 SWAT Big wins over HadoopCL: • Built on Spark. And Scala. • No HadoopCL-specific data structures required for representing complex data types • User-defined classes w/ restrictions, MLlib DenseVector, Mllib SparseVector, Scala Tuple2 for (key, value) pairs, Primitives • Simpler semantics for some Spark parallel operations • e.g. Spark map() forces one output per input, MapReduce allows arbitrary # of outputs (though Spark has flatMap()) • Better locality, caching of on-device data based on broadcast, RDD IDs • Simplified dynamic memory allocator on GPU • More stable, nearing production-ready implementation. • Max Grossman / Rice University
  • 46. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |46 SWAT Current benchmarks: • Fuzzy CMeans, KMeans, Neural Net, Pagerank, Connected Components Major Challenges: • Architected as a third-party JAR, internal Spark state is hidden (unlike HadoopCL) • Garbage collection… Allocation patterns of a SWAT program are very different from those of an equivalent Spark version • Can we do better auto-scheduling than HadoopCL? Offline? Experiment with other classification algorithms based on IBM work?
  • 47. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |47 CONCLUSION  HadoopCL offers the flexibility, reliability, and programmability of Hadoop accelerated by native, heterogeneous OpenCL threads  Using HadoopCL is a tradeoff: lose parts of the Java language but gain improved performance  Evaluation of KMeans with real-world data sets shows that HadoopCL is flexible and efficient enough to improve performance of real-world applications Thanks: Max Grossman, max.grossman@rice.edu
  • 48. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |48 RESOURCES APARAPI https://code.google.com/p/aparapi/ http://developer.amd.com/tools-and-sdks/opencl-zone/aparapi/ HADOOPCL paper https://wiki.rice.edu/confluence/download/attachments/4425835/hpdic.pdf?versio n=1&modificationDate=1366561784922&api=v2 HADOOP on GPU http://www.slideshare.net/vladimirstarostenkov/star-hadoop-gpu HADOOPCL presentation https://www.youtube.com/watch?v=KMpjFsOO4nw
  • 49. DEEP NEURAL NETWORK(DNN) ACCELERATION ON AMD ACCELERATORS JUNLI GU, AMD RESEARCH
  • 50. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |50 MACHINE LEARNING + BIG DATA INDUSTRY TREND  Why machine learning for Big Data? ‒ Original human defined algorithms don’t work well for Big Data ‒ Competing in machine learning to understand Big Data  DNN (deep neural networks) is breaking through & leading direction ‒ Large scale of image classification/recognition/search ‒ Face recognition, Online recommendation, Ads ‒ Documentation retrieval, Optical Character Recognition (OCR)  Long list of companies looking for DNN solutions DNN + Big Data is believed to be the evolutionary trend for apps & HPC systems.
  • 51. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |51 DEEP LEARNING BRINGS CHALLENGES TO SYSTEM DESIGN • Typical scale of data set • Image search: 1M • OCR: 100M • Speech: 10B, CTR: 100B • Projected data to grow 10X per year • DNN model training time • Weeks to months on GPU clusters • Trained DNNs then deployed on cloud • System is the final enabler • Current platform runs into bottleneck • CPU clusters  CPU + GPU clusters • Looking at dGPUs, APUs, FPGAs, ASIC, etc. DNN model DNN compute & memory intensive, thus clusters Big Data input Answer
  • 52. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |52 WHAT HAVE WE DONE  Focused on three major industry DNN algorithms  CNN: Convolutional Neural Network (image/video classification) ‒ Reference Source: Univ. of Toronto CUDA version (http://github.com/bvlc/caffe) ‒ AMD implementation open sourced at https://github.com/amd/OpenCL-caffe  Multi-layer Perceptron (Voice Recognition) ‒ Source: publications, interaction with industry experts and ISVs ‒ AMD implementation in C++, OpenCL  Auto-encoder + L-BFGS training image and document retrieval) ‒ Reference Source: Stanford Univ. Matlab code (http://ai.stanford.edu/~quocle/nips2011challenge/) ‒ AMD implementation in C++, OpenCL ‒ CPU and GPU computing interact frequently BASED ON TODAY’S INDUSTRY
  • 53. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |53 EVALUATION METHODOLOGY AND PLATFORMS  Implementations based on commercial BLAS libraries ‒ Mainstream X86 CPUs: C++ & math library ‒ AMD APUs & GPUs: OpenCL & CLAMDBLAS ‒ Mainstream GPU: CUDA C & CUBLAS (for competitive purposes)  Platforms Device Category Device Name Throughput (GFLOPS) Price (USD) TDP (Watt) CPU version AMD OCL version CUDA version Note CPU Mainstream x86 848 360 84 √ √ Realtime power traces APU series AMD APU A10-7850k 856 204 95 √ Realtime power traces AMD APU A10-8700p 150 35 √ NA Mainstream x86 SOC 848 360 84 √ Realtime power traces GPU AMD Radeon HD7970 3788.8 322 250 √ TDP used Mainstream GPU 3977 612 250 √ √ TDP used W9100 4096 6000 250 √ TDP used
  • 54. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |54 IMAGE RECOGNITION SPEED  Usually real time image recognition speed constraint is 30 frames per second (fps), 30 ms per image  The CPU (4-thread) can’t meet real time constrains, best 10 fps  APU can compute up to 84 fps (8x faster than the CPU)  Discrete GPU vs APU, 2x-3x faster for small (1-8) and big (256) batch size, 4x-5x faster for medium (6-128 ) batch size Large scale object recognition 0 500 1000 1500 2000 2500 3000 1 2 4 8 16 32 64 128 256 LatencyofEachBatch(ms) Batch Size Image recognition latency (CAFFE CNN model, 256*256 ImageNet data) APU's CPU(4 thread) APU's GPU AMD Radeon W9000 GPU Real time constraints
  • 55. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |55 MLP MODEL (VOICE RECOGNITION) • APU vs. Mainstream x86 1.8x speedup • APU vs. Mainstream x86 SOC’s 3.7x speedup Mini-batch size: 1024 CPU prepares data, GPU computes A10-7850k Mainstream Mainstream AMD Radeon Mainstream x86 x86 SoC HD7970 GPU
  • 56. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |56 POWER/PERF_PER_WATT 1 0.3 0.22 0.7 0.8 1 1.9 1.3 7.3 7.3 0 1 2 3 4 5 6 7 8 0 0.2 0.4 0.6 0.8 1 1.2 A10-7850K Mainstream x86 Mainstream x86 SOC's AMD HD7970 Mainstream GPU SpeedandPower(normalizedtoAPU) Perf.PerWatt(normalizedtoAPU) Performance Per Watt Ratio Power Ratio  APU achieves the highest Performance/Watt E.g. 1.2x compared to GPU  GPU achieves 5x performance with 7x power  CPU gets 60% performance with 1.9x power A10-7850k Mainstream Mainstream AMD Radeon Mainstream x86 x86 SoC HD7970 GPU
  • 57. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |57 AUTOENCODER (IMAGE AND DOCUMENT RETRIEVAL) • Algorithm is mix of CPU+GPU compute • APU vs. Mainstream x86 8% slow down • APU vs. Mainstream x86 SOC’s 3.8x speedup  The larger the batch size is, the bigger advantage APU presents. Data: CIFAR10, Mini-batch size: 2048 CPU: L-BFGS; GPU: Autoencoder forward and backward propagation A10-7850k Mainstream Mainstream AMD Radeon Mainstream x86 x86 SoC HD7970 GPU
  • 58. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |58 POWER/PERF_PER_WATT  APU achieves the highest Performance/Watt E.g. 2x compared to dGPU  GPU achieves 2x performance with 5x power  CPU gets 90% performance with 1.4x power 1 0.65 0.3 0.46 0.5 1 1.4 0.9 4.8 4.8 0 1 2 3 4 5 6 0 0.2 0.4 0.6 0.8 1 1.2 A10-7850K Mainstream x86 Mainstream x86 SOC's AMD HD7970 Mainstream GPU SpeedandPower(normalizedtoAPU) Perf.PerWatt(normalizedtoAPU) Performance Per Watt Ratio Power Ratio A10-7850k Mainstream Mainstream AMD Radeon Mainstream x86 x86 SoC HD7970 GPU
  • 59. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |59 REAL CASE TRAINING  MNIST Training through MLP Model ‒Handwritten digits , 60000 images ‒Mini-batch size 1024, 200 epochs APU A10-7850 GPU HD7970 GPU vs. APU Training Process Time 362 second 192 second 1.9x speedup Average Power 47 Watt 250 Watt 5.3x power Energy 17k Joule 40k Joule 2.4x energy Predicting Process Time 8.1 second 3.5 second 2.3x speedup Average Power 37 Watt 250 Watt 6.8x power Energy 300 Joule 875 Joule 2.9x energy
  • 60. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |60 PUBLIC RELEASE OF OPENCL-CAFFE  We open sourced OpenCL-caffe framework ‒ Welcome everyone to join us in improving on APU or other research  Users only need to provide CNN framework, parameters and training samples. ‒ Framework will train automatically HTTPS://GITHUB.COM/AMD/OPENCL-CAFFE ‒Contain three modules: ‒ Preprocess the image data by LevelDB and Protocol Buffer. Convert convolutional computations into matrix operation and use CLBLAS to accelerate ‒ CPU is responsible for data processing and main loop iteration ‒ GPU device is responsible for major kernel computation
  • 61. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |61 CONCLUSIONS  For DNN domain:  APUs achieve up to 2x higher performance per watt efficiency, compared to mainstream GPUs ‒ For auto-encoder, GPU consumes 5.3x more power to achieve 2.4x speedup  APUs offer the most compelling performance/ watt and performance / $$  Architectural advantages: ‒ APUs have very large unified address space ‒ Remove GPU's device memory limitation and data transfer bottleneck, which suits better for Big Data inputs
  • 62. A PRACTICAL IMPLEMENTATION OF BREADTH-FIRST SEARCH ON HETEROGENEOUS PROCESSORS MAYANK DAGA AMD RESEARCH
  • 63. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |63 BREADTH-FIRST SEARCH (BFS)  BFS is a fundamental primitive used several in graph applications ‒ Social network analysis ‒ Recommendation systems ‒ Graph500 benchmark (www.graph500.org)  Cybersecurity, Medical Informatics,  Data Enrichment, Social Networks, and Symbolic Networks  Accelerating BFS can provide widespread advantages given its pervasive deployment
  • 64. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |64 BREADTH-FIRST SEARCH - 101 1 Top-Down BFS visited nodes find their unvisited children 1 visited node unvisited node
  • 65. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |65 BFS AND GPUS  Breadth-first search is not a GPU-friendly application ‒ Load imbalance ‒ Irregular memory access patterns  Recent work has demonstrated a credible BFS implementation2 ‒ Tracks level or depth of nodes  Does not create a BFS-tree as required by Graph500 ‒ Does not have widespread use [1] D. Merrill, M. Garland, and A. Grimshaw. “Scalable gpu graph traversal”. In Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’12, New York, NY, USA, 2012.
  • 66. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |66 BREADTH-FIRST SEARCH - 201 1 [2] S. Beamer, K. Asanovic, and D. Patterson, “Direction optimizing breadth-first search”. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, SC ’12. Bottom-Up BFS unvisited nodes find their visited parent 1 visited node unvisited node
  • 67. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |67 NO ALGORITHM OR PLATFORM IS A PANACEA FOR BFS 0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 TDO-CPU BUP-CPU TDO-GPU BUP-GPU NormalizedPerf.w.r.t.TDO-CPU Wikipedia GreatBritain O P T I M A L O P T I M A L TDO – Top-Down BFS BUP – Bottom-Up BFS
  • 68. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |68 HYBRID++ BFS TRAVERSAL ALGORITHM  Top-Down  Bottom-Up HYBRID GRAPH TRAVERSAL TECHNIQUE1  AMD Accelerated Processing Unit (APU) Hybrid Platform of Execution 1 1
  • 69. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |69 OUTLINE  Introduction  Optimal platform and optimal algorithm  Why APU  GPU accelerated Bottom-Up BFS  Results
  • 70. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |70 OPTIMAL PLATFORM FOR HYBRID ALGORITHM Top-Down Algorithm Bottom-Up Algorithm  Amount of parallelism is limited  Suitable for initial and final iterations  Ideal for CPU  Amount of parallelism is abundant  Suitable for intermediate iterations  Ideal for GPU 1 1
  • 71. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |71 0 1 2 3 4 5 6 7 kron rmat wiki flickr erdos_1.5 nlpkkt120 co_papers CopyTimevsKernelTime Graphs HYBRID++ ON DISCRETE GPU WHY APU? Bottom-Up (on dGPU) Top-Down (on CPU) Start BFS Use online heuristic copy_data() copy_data()
  • 72. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |72 Accelerated Processing Unit (APU) ACCELERATING BFS USING HYBRID++ ALGORITHM Graph resides in system memory CPU Top- Down GPU Bottom- Up Start BFS Use online heuristic Heuristic comprises of #edges, #nodes, avg. degree of graph
  • 73. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |73 BOTTOM-UP BFS  Consecutive GPU threads map to consecutive vertices unvisited nodes find their visited parent function bottom-up-step() for all the vertices in the graph has the vertex, ‘v’, been visited? if not visited, for all the neighbors of ‘v’ has the neighbor, ‘n’ been visited? if yes, ‘n’ is the parent of ‘v’ update data structures Load imbalance Scattered reads Atomic update
  • 74. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |74 EXPERIMENTAL SETUP  AMD A10-7850K “Kaveri” APU ‒ Quad-core CPU + 8 GCN Compute Units with 95W TDP  Variety of input graphs ‒ 0.5 million to 14 million nodes ‒ 8 million to 134 million edges
  • 75. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |75 0 2 4 6 8 10 12 14 16 18 20 kron rmat wiki flickr erdos_1.5 gb co_papersliveJournal orkut geo_mean Speedup Graphs Hybrid (CPU) Hybrid++ (CPU+GPU) PERFORMANCE OF HYBRID++ ON AMD A10-7850K APU  Speedup by ‒algorithmic improvements: ~10x (best) and ~3.6x (avg.) ‒algorithmic + platform improvements: ~20x (best) and ~5.6x (avg.) Y-axis represents speedup over the 4-core OpenMP reference BFS algorithm in Graph500 2x
  • 76. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |76 CPU SCALING  Experiment was conducted using CPUs of AMD A10 7850K “Kaveri” APU  Performance depicted is the geometric mean of various inputs ‒ Performance does not scale linearly 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 1-core 2-core 4-core Performancew.r.t.single-core Actual Performance Ideal Scaling
  • 77. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |77 HYBRID++ TRULY UTILIZES BOTH CPU AND GPU 37.21 62.79 26.07 73.93 9.62 90.38 3.68 96.32 5.14 94.86 6.56 93.44 erdos_1.5 wiki orkut rmat live_journal kron CPU GPU
  • 78. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |78 SCALABILITY OF HYBRID++  Scales well with both #nodes and #edges  Particularly beneficial to social-network type graphs (top-right corner) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 8 16 32 64 TraversedEdges/Sec(Billion) Number of Incident-Edges on Each Node 1M 2M 4M 8M The legend depicts the number of nodes in the graph in million
  • 79. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |79 APU VS DISCRETE GPU AGAIN WHY APU Limit on the size of input for discrete GPU
  • 80. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |80 ENERGY CONSUMPTION ON APU VS DISCRETE GPU 0 0.5 1 1.5 2 2.5 amazon coPapers erdos_1.5 flickr kron23 liveJournal orkut rmat23 wikipedia geo_mean EnergynormalizedtoAPU Y-axis represents performance per watt over Graph500 implementation on the APU On avg. the discrete GPU consumes 80% more energy
  • 82. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |82 PANNOTIA BENCHMARK SUITE  A collection of OpenCL implementations of graph algorithms  Sample algorithms include: HTTPS://GITHUB.COM/PANNOTIA/PANNOTIA Betweenness Centrality Graph Coloring Single-Source Shortest Path (SSSP) All-Pairs Shortest Path (Floyd-Warshall) Maximal Independent Set PageRank On avg. the APU achieves 2.7x speedup over four CPU cores
  • 83. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |83 BELRED  Heterogeneous graph processing using sparse linear algebra building blocks  Important routines include: SpMV, min.+, SpGeMM, element-wise operations, segmented reduce, etc. ‒ Inspired by Kepner and Gilbert. Graph Algorithms in the Language of Linear Algebra ith iteration of a BFS using SpMV Graph Visited Frontier
  • 84. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |84 GASCL  Scale heterogeneous graph applications to multiple nodes  System development using a model similar to GraphLab, Pregel, etc.  Users develop graph applications in vertex-centric, gather, apply and scatter kernels LARGE-SCALE GRAPH SYSTEMS
  • 85. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |85 CONCLUSION  Large-scale data analytics and heterogeneous compute are the future present  Heterogeneous computing can ‒ Reduce power consumption in smart phones, tablets and the data center ‒ Provide compelling new user experiences by improved performance  AMD is pioneering the advancement of heterogeneous compute ‒ Open standards ‒ Easy to program  Partner with us … Collaborate with us … Mayank.Daga@amd.com Mauricio.Breternitz@amd.com Junli.Gu@amd.com — Machine learning — Deep neural networks — Graph processing — Open to other verticals
  • 86. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |86 DISCLAIMER & ATTRIBUTION The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes. AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ATTRIBUTION © 2015 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo, AMD Radeon, AMD Catalyst, and combinations thereof are trademarks of Advanced Micro Devices, Inc. in the United States and/or other jurisdictions. OpenCL is a trademark of Apple Inc. used by permission by Khronos. Other names are for informational purposes only and may be trademarks of their respective owners.
  • 87. | OPTIMIZING BIG DATA ANALYTICS ON HETEROGENEOUS PROCESSORS | OCTOBER 23, 2015 | 2015 IEEE BIG DATA | SANTA CLARA, CA, USA |87 WHY APUS - DATA TRANSFER OVERHEADS  How to avoid data copy through the zero-copy technique on APUs? ‒ APU: Zero-copy improves performance by 10% ‒ GPUs: Zero-copy degrades performance by 3.5x for AMD GPU and 8.7x for Competitor GPU Zero-copy technique: GPUs: GPU accesses host memory through PCIe, slow APUs: CPU and GPU share the same piece of memory, efficient Experiment design: CPU initializes 2k x 2k matrixes (A, B), GPU performs C=A*B Matrix multiplication performance comparison among copy and zero-copy 45 41 19 67 23 199 0 10 20 30 40 50 60 70 80 90 100 110 120 Copy Zero Copy Copy Zero Copy Copy Zero Copy Kaveri HD7970 Mainstream GPU ExecutionTime(ms) Kernel Data Transfer