2. APU:
ACCELERATED
PROCESSING
UNIT
! The
APU
has
arrived
and
it
is
a
great
advance
over
previous
plaKorms
! Combines
scalar
processing
on
CPU,
parallel
processing
on
GPU,
co-‐processors
and
high
bandwidth
access
to
memory
! Higher
performance
with
lower
power
DDR3
Controller
Channel
UNB
L2
Cache
Dual
Core
x86
Module
PCIe
2
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
UVD/
VCE
L2
Cache
GPU
Dual
Core
x86
Module
PCIe
PCIe
DisplayPort
/HDMI
3. HSA:
HETEROGENEOUS
SYSTEM
ARCHITECTURE
Processor
and
soTware
design
that
makes
it
easy
for
developers
to
harness
the
compuVng
power
of
an
APU,
for
faster
and
more
power-‐efficient
computaVon
3
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
4. AMD'S
DEVELOPER
TOOLS
STRATEGY
! Converge
tools
and
technologies
to
an
“HSA
Developer
Tools
Suite”
! Maintain
capabiliVes
for
specific
market
needs
CPU
Tools
Convergence
of
Technologies
and
Tools
Need
for
System
Level
APU
Tool
GPU
PerfStudio
GPU
Tools
4
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
10. GPU
DEBUGGING
! Transforms
GPU
debugging
process
to
a
“white
box”
model
! Finds
“hard
to
catch”
heterogeneous
compuVng
related
bugs
! IntuiVve
and
familiar
debugging
experience
! Feature
highlights:
‒ OpenCL™
and
OpenGL
API
Level
Debugger
‒ OpenCL™
Kernel
Source
Code
Debugger
‒ MulV-‐Watch
view
‒ OpenCL
Buffers’
Data
view
10
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
11. CPU
TIME
BASED
PROFILING
! Usage
‒ Is
used
for
finding
program
level/algorithmic/data
structure
related
performance
issues
! Profiling
Method
‒ The
user
defines
a
Vme
interval
(default
is
1
msec)
‒ On
every
Vme
interval,
for
each
thread,
the
profiler
logs
the
instrucVon
pointer
‒ Call-‐stack
logging
is
opVonal
(very
useful)
11
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
12. CPU
EVENT
BASED
PROFILING
! Usage
‒ Is
used
for
locaVng
CPU
micro-‐architectural
related
performance
issues
! Profiling
Method
‒ The
user
selects
an
event
(example:
cache
misses)
‒ The
user
defines
event
count
(example:
5000)
‒ A
counter
counts
the
event
occurrences
(cache
misses)
‒ When
the
counter
reaches
the
event
count,
the
profiler
logs
the
instrucVon
pointer
‒ Call-‐stack
logging
is
opVonal
12
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
13. GPU
COMPUTE
PROFILING
! Analyzes
and
profiles
OpenCL™
and
MicrosoT®
DirectCompute
applicaVons
! API
Trace
View:
Traces
OpenCL™
API
calls,
IdenVfy
failed
API
calls,
resource
leaks
and
best
pracVces
! Timeline
VisualizaNon:
Visualize
host,
kernel
and
data
transfer
execuVon
in
a
Vmeline
chart
! Summary
Pages:
Finds
the
top
booleneck,
top
ten
kernel
execuVon
and
data
transfer
operaVons
! Performance
Counter
View:
Collects
GPU
performance
counters
for
OpenCL™
kernels
13
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
14. STATIC
KERNEL
ANALYSIS
! StaVc
analysis
tool
to
compile,
analyze
and
disassemble
an
OpenCL™
kernel
for
AMD
CPUs,
APUs
and
GPUs
! View
AMD
Intermediate
Language
(AMD
IL)
and
hardware
disassembly
(ISA)
! Generate
offline
compilaVon
of
OpenCL™
kernel
binary
! View
kernel
compilaVon
warning
and
error
messages
! View
compiler
staVsVcs
and
esVmate
performance
! Only
require
the
OpenCL™
kernel
source
code
as
an
input
! Does
not
require
a
GPU
in
the
system
14
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
15. WHAT’S
NEW
IN
CODEXL?
! Version
1.1
‒ Windows®
8
support
‒ MicrosoT®
Visual
Studio®
2012
integraVon
‒ Linux®
KDE
support
‒ Support
AMD’s
Sea
Island
family
of
GPUs
‒ Single
CodeXL
Explorer
tree
! Version
1.2
‒ Windows®
8.1
support
‒ Enhanced
CPU
Profiling
user
interface
‒ CPU
profiling
of
Java
/.NET
applicaVons
‒ Support
Kabini
APUs
15
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
16. WHAT’S
NEW
IN
CODEXL
/2
! Version
1.3
‒ Remote
GPU
Profiling
and
Remote
GPU
debugging
‒ IntegraVng
Kernel
Analyzer
‒ CPU
Profiling
of
Cache
Line
UVlizaVon
‒ CPU
Profiling
support
for
Java
inline
funcVons
‒ GPU
API
Level
Debugging
support
for
OpenGL
4.3
‒ Support
Kaveri
APUs
16
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
18. ACCELERATED
PARALLEL
PROCESSING
(APP)
SDK
! What
is
AMD
APP
SDK?
‒ Development
plaKorm
for
heterogeneous
compuVng
‒ Helps
developers
to
exploit
the
highly
parallel
compute
acceleraVon
of
GPUs
‒ Designed
to
allow
a
GPU
to
work
harmoniously
with
a
mulVcore
CPU
to
execute
demanding
compuVng
tasks
‒ Helps
enable
a
beoer
balanced
plaKorm
opVmizaVon
for
APUs
‒ Supports
open
industry
standards
and
embraces
open
source
soTware
‒ OpenCL™
‒ C++
AMP
‒ Aparapi
(Java)
‒ Bolt
C++
template
library
‒ OpenCV
‒ OpenNI
‒ Helps
enable
development
for
cross-‐OS
and
cross-‐plaKorm
heterogeneous
soluVons
‒ Contains
numerous
programming
samples
18
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
19. WHAT’S
NEW
IN
APP
SDK
2.9
! Unified
SDK
installer
! Sample
browser
! New
SDK
samples
‒ OpenCV
and
OpenNI
‒ Bolt
samples
‒ Concurrent
kernels
‒ GCN
samples
! Bolt
C++
template
library
support
on
Linux®
! Support
for
latest
AMD
hardware
(“Kabini”
APUs,
R9
&
R7
series
GPUs)
! Download
the
latest
APP
SDK
from
AMD
today
from
AMD
Developer
Central
(developer.amd.com)
19
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
21. GPU
PERFSTUDIO
2
INTRODUCTION
! GPU
PerfStudio2
is
AMD's
performance
and
debugging
tool
for
graphics
applicaVons.
! Key
Features
‒ Integrated
Frame
Profiler,
Frame
Debugger,
and
API
Trace
with
CPU
Vming
informaVon
‒ Shader
Debugger
with
support
for
DirectX®10
&
11
HLSL
and
Assembly
code
‒ Client
/
Server
model
-‐
GPU
PerfStudio
2
Client
runs
locally
or
remotely
over
the
network
‒ GPU
PerfStudio
2
Server
supports
32-‐bit
and
64-‐bit
applicaVons
‒ Supports
DirectX®11,
DirectX®10.1
,
DirectX®10
and
OpenGL
4.2
applicaVons
‒ No
special
build
required
for
your
applicaVon
‒ Small
footprint
–
no
installaVon
‒ Free
download
hop://developer.amd.com
21
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
22. INTRODUCTION
TO
GPU
PERFSTUDIO
2
FRAME
DEBUGGER
! Capture,
play
back
and
view
the
contents
of
a
frame
! Scrub
through
draw
calls
! Visualize
the
GPU
Vme
for
each
draw
call
! View
all
game
resources
and
state
bound
at
each
draw
call
! Inspect
the
resources
at
each
stage
of
the
pipeline
! View,
edit
and
debug
shader
code
22
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
23. INTRODUCTION
TO
GPU
PERFSTUDIO
2
FRAME
PROFILER
! IdenVfy
costly
draw
calls
! Detect
GPU
pipeline
stage
boolenecks
! InvesVgate
performance
issues
at
the
counter
level
23
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
24. INTRODUCTION
TO
GPU
PERFSTUDIO
2
SHADER
DEBUGGER
&
EDITOR
! Edit
the
live
HLSL
and
GLSL
code
inside
your
app
while
running
in
the
tool
! Debug
the
live
HLSL
and
Assembly
code
inside
your
app
while
running
in
the
tool
‒ Step
through
shader
code
‒ Inspect
all
register
values
‒ Insert
and
run-‐to
break
points
! Compare
before
and
aTer
edit
performance
using
the
Profiler
24
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
25. INTRODUCTION
TO
GPU
PERFSTUDIO
2
API
TRACE
! Inspect
all
API
calls
(with
arguments)
! CPU
Vmeline
informaVon
for
each
API
call
! Visualize
mulV-‐threaded
API
usage
! Supports
DirectX®
11
Command
Lists
and
deferred
contexts
25
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
26. INTRODUCTION
TO
GPU
PERFSTUDIO
2
WHO
USES
IT?
! Widely
used
by
internal
groups
in
AMD
‒ AMD
Developer
Technology
Engineers:
OpVmize
&
debug
game
Vtles
in
conjuncVon
with
developers
‒ AMD
Driver
Performance
Team:
Improve
GPU
benchmarks
and
Vtles
at
the
driver
level
‒ AMD
Driver
Team:
Inspect
apps
that
cause
driver
problems
‒ AMD
Game
Compute
Team:
Debug
and
opVmize
game
technologies
for
new
GPU
hardware
-‐
AMD
Mecha
Demo,
Ladybug,
Leo
demo
! External
users
‒ Graphics
developers:
Used
in
the
development
of
DirectX®11
and
OpenGL
graphics
applicaVons
26
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
27. GPU
PERFSTUDIO
2
REMOTE
AND
LOCAL
DEBUG
SESSIONS
Server
Server
! Remote
usage
allows
the
game
to
be
run
full
screen.
Higher
profiling
accuracy,
useful
during
final
opVmizaVon.
Client
Client
Remote
debugging
! Local
usage
on
a
single
machine
(preferred
by
developers).
More
suited
for
use
during
development.
27
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
Server
&
Client
28. OPTIMIZING
GAME
DEVELOPMENT
USING
AMD'S
GPU
PERFSTUDIO
2
LATEST
VERSION
! What’s
new
in
GPS2.14?
‒ Hardware
counter
support
for
AMD
“Hawaii”
(R9
290
series)
GPU’s
‒ Improved
support
for
mulVthreaded
applicaVons
‒ Pipeline
specific
counters
for
OpenGL
‒ Support
for
OpenGL
Compute
! Currently
in
development
‒ Support
for
Linux®/OpenGL
applicaVons
‒ Support
for
Mantle
applicaVons
‒ There’s
opVmizaVon,
and
then
there’s
Mantle.
Games
enabled
with
Mantle
speak
the
language
of
GCN
architecture
to
unlock
revoluVonary
performance
and
image
quality.
28
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
30. GPU
PERFSTUDIO
2
FIND
OUT
MORE
! GS-‐4136
-‐
OpVmizing
Game
Development
using
AMD’s
GPU
PerfStudio
2
Tue
4:00
-‐
4:45
LL21E
! Take
a
look
at
three
usage
scenarios
from
developers
‒ Assassins
Creed
3
–
Understanding
the
frame
‒ Far
Cry
3
–
Automated
data
mining
of
game
content
‒ Steam
Linux®
–
PorVng
Source2
to
OpenGL
! Currently
in
development
‒ Support
for
Linux®
(OpenGL)
applicaVons
‒ Support
for
Mantle
applicaVons
30
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013
32. APU
2013
DEVELOPER
TOOLS
SESSIONS
! PT-‐4052
IntroducVon
to
AMD
Developer
Tools
Tue
10:00
-‐
10:45
! PT-‐4055
-‐
OpVmizing
Raytracing
on
GCN
with
AMD
Development
Tools
Tue
5:00
-‐
5:45
! PT-‐4053
-‐
Advanced
OpenCL
Debugging
and
Profiling
using
CodeXL
Wed
11:00
-‐
11:45
! GS-‐4136
-‐
OpVmizing
Game
Development
using
AMD’s
GPU
PerfStudio
2
Tue
4:00
-‐
4:45
! Come
and
chat
with
us
at
the
AMD
Developer
Tools
Demo
Booth
32
|
INTRODUCTION
TO
AMD
DEVELOPER
TOOLS
|
NOVEMBER
2013