From 00132294f8649be3f0b090acb1663d3d5b68f5e2 Mon Sep 17 00:00:00 2001 From: Istvan Kiss Date: Tue, 27 Jan 2026 09:04:36 +0100 Subject: [PATCH] Update HIP programming guide images (#2794) Update images of HIP documentation --- .../sequential_async_event.drawio | 212 +- .../asynchronous/sequential_async_event.svg | 5 +- .../thread_hierarchy.drawio | 1084 +++ .../cooperative_groups/thread_hierarchy.svg | 1 + .../thread_hierarchy_coop_bottom.drawio | 1058 +-- .../thread_hierarchy_coop_bottom.svg | 2 +- .../thread_hierarchy_coop_top.drawio | 5203 +--------- .../thread_hierarchy_coop_top.svg | 2 +- .../hip_runtime_api/hipgraph/hip_graph.drawio | 218 +- .../hip_runtime_api/hipgraph/hip_graph.svg | 9 +- .../hipgraph/hip_graph_speedup.drawio | 363 +- .../hipgraph/hip_graph_speedup.svg | 6 +- .../memory_management/pageable_pinned.drawio | 131 +- .../memory_management/pageable_pinned.svg | 2 +- .../unified_memory/um.drawio | 1900 ++-- .../memory_management/unified_memory/um.svg | 19 +- .../hip_runtime_api/stream_management.drawio | 58 +- .../hip_runtime_api/stream_management.svg | 2 +- .../ct_reconstruction_overview.drawio | 109 +- .../graph_api/ct_reconstruction_overview.png | Bin 1447959 -> 1470822 bytes .../data/tutorial/graph_api/diamond.drawio | 92 +- .../docs/data/tutorial/graph_api/diamond.svg | 8 +- .../reduction/conflict_free_reduction.drawio | 546 +- .../reduction/conflict_free_reduction.svg | 2 +- .../docs/data/tutorial/reduction/foldl.drawio | 160 +- .../docs/data/tutorial/reduction/foldl.svg | 2 +- .../tutorial/reduction/naive_reduction.svg | 2 +- .../tutorial/reduction/parallel_foldl.drawio | 156 +- .../tutorial/reduction/parallel_foldl.svg | 2 +- .../reduced_divergence_reduction.drawio | 620 +- .../reduced_divergence_reduction.svg | 2 +- .../tutorial/reduction/warp_reduction.drawio | 670 +- .../tutorial/reduction/warp_reduction.svg | 3 +- .../warp_reduction_with_shared.drawio | 1121 +-- .../reduction/warp_reduction_with_shared.svg | 4 +- .../compute_unit.drawio | 374 +- .../hardware_implementation/compute_unit.svg | 13 +- .../cpu-gpu-comparison.drawio | 528 +- .../programming_model/cpu-gpu-comparison.svg | 2 +- .../programming_model/host-device-flow.drawio | 179 +- .../programming_model/host-device-flow.svg | 2 +- .../programming_model/memory-access.drawio | 263 +- .../programming_model/memory-access.svg | 2 +- .../programming_model/memory_hierarchy.drawio | 710 +- .../programming_model/memory_hierarchy.svg | 2 +- .../programming_model/multi-gpu.drawio | 83 +- .../programming_model/multi-gpu.svg | 2 +- .../programming_model/simt-execution.svg | 2 +- .../programming_model/stream-workflow.drawio | 114 +- .../programming_model/stream-workflow.svg | 2 +- .../programming_model/thread_hierarchy.drawio | 8400 ++--------------- .../programming_model/thread_hierarchy.svg | 4 +- 52 files changed, 7018 insertions(+), 17438 deletions(-) create mode 100644 projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.drawio create mode 100644 projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.svg diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.drawio index 2ea9376cf3..0277e10230 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.drawio @@ -1,14 +1,17 @@ - + - - + + - - + + + + + @@ -19,254 +22,245 @@ - - - - - + + - + - + - + - + - + - + - + - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + - + - + - + - + - + - + - + - - + + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.svg b/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.svg index fe52799858..920f4aa6b4 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/asynchronous/sequential_async_event.svg @@ -1,2 +1,3 @@ -
time
time
default stream
default stream
H2D
data1
H2D...
H2D
data2
H2D...
kernel
data1
kernel...
kernel
data2
kernel...
D2H
data1
D2H...
D2H
data2
D2H...
H2D
data2
H2D...
kernel
data2
kernel...
stream2
stream2
D2H
data2
D2H...
H2D
data1
H2D...
kernel
data1
kernel...
stream1
stream1
D2H
data1
D2H...
Seqeuntial calls:
Seqeuntial calls:
Asynchronous calls:
Asynchronous calls:
Asynchronous calls with hipEvent:
Asynchronous calls with hipEvent: -
H2D
data2
H2D...
kernel
data2
kernel...
stream2
stream2
H2D
data1
H2D...
kernel
data1
kernel...
stream1
stream1
D2H
data2
D2H...
event
event
D2H
data1
D2H...
eventA
eventB
eventA...
Text is not SVG - cannot display
\ No newline at end of file +
time
time
default stream
default stream
H2D
data1
H2D...
H2D
data2
H2D...
kernel
data2
kernel...
D2H
data1
D2H...
D2H
data2
D2H...
H2D
data2
H2D...
stream2
stream2
D2H
data2
D2H...
H2D
data1
H2D...
kernel
data1
kernel...
stream1
stream1
H2D
data2
H2D...
kernel
data2
kernel...
stream2
stream2
H2D
data1
H2D...
kernel
data1
kernel...
stream1
stream1
D2H
data2
D2H...
event
event
D2H
data1
D2H...
eventA
eventA +
Sequential calls:
Sequential calls:
D2H
data1
D2H...
kernel
data1
kernel...
kernel
data2
kernel...
Asynchronous calls:
Asynchronous calls:
Asynchronous calls with hipEvent:
Asynchronous calls with hipEvent:
eventB
eventB +
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.drawio new file mode 100644 index 0000000000..a86f2dad66 --- /dev/null +++ b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.drawio @@ -0,0 +1,1084 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.svg b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.svg new file mode 100644 index 0000000000..744a9c54a6 --- /dev/null +++ b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy.svg @@ -0,0 +1 @@ +
Grid
Grid
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.drawio index 4f1ff494f2..258238329b 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.drawio @@ -1,903 +1,483 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.svg b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.svg index 298cd48218..38464fe97c 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_bottom.svg @@ -1 +1 @@ -Block
Thread-block tile
Thread-block tile
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Thread-block tile
Thread-block tile
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Coalesced group
Coalesced group
Warp
Warp
Warp
Warp
Warp
Warp
Coalesced group
Coalesced group
Warp
Warp
Warp
Warp
Warp
Warp
Grid
Text is not SVG - cannot display
\ No newline at end of file +
Grid
Grid
Thread-block tile
Thread-block tile
Warp
Warp
Warp
Warp
Thread-block tile
Thread-block tile
Warp
Warp
Warp
Warp
Block
Block
Coalesced group
Coalesced group
Warp
Warp
Warp
Warp
Block
Block
Coalesced group
Coalesced group
Warp
Warp
Warp
Warp
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.drawio index e4c0c90d2d..ca5bdb555b 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.drawio @@ -1,5150 +1,827 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - + + - - - - - - - + - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - - + - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - + + - - - - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.svg b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.svg index ebe4794576..eeb968dd19 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/cooperative_groups/thread_hierarchy_coop_top.svg @@ -1 +1 @@ -Grid
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
GridMulti Grid
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Text is not SVG - cannot display
\ No newline at end of file +
Grid
Grid
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Grid
Grid
Multi Grid
Multi Grid
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.drawio index 03569ac734..aaa1e8922c 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.drawio @@ -1,76 +1,142 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.svg b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.svg index 6eed6b92e5..4fe4643250 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph.svg @@ -1,4 +1,5 @@ - - - -Stream 1
Kernel B
Kernel B
Stream 2
Kernel A
Kernel A
hipDeviceSynchronize
hipDeviceSynchronize
Kernel C
Kernel C
hipDeviceSynchronize
hipDeviceSynchronize
Kernel D
Kernel D
Kernel A
Kernel A
Kernel B
Kernel B
Kernel C
Kernel C
Kernel D
Kernel D
Text is not SVG - cannot display
\ No newline at end of file +
Kernel A
Kernel A +
Kernel B
Kernel B +
Kernel C
Kernel C +
Kernel D
Kernel D
Stream 1

+
Stream 2
hipDeviceSynchronize
hipDeviceSynchronize
hipDeviceSynchronize
hipDeviceSynchronize
Kernel B
Kernel B
Kernel C
Kernel C
Kernel D
Kernel D
Kernel A
Kernel A
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.drawio index 7802785f6b..120b1f2b40 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.drawio @@ -1,162 +1,201 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.svg b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.svg index f16123b9e2..8af9fd5457 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/hipgraph/hip_graph_speedup.svg @@ -1,4 +1,2 @@ - - - -Streams
kernel A
kernel launch A
kernel B
kernel C
kernel launch B
kernel launch C
host activity
device activity
time
kernel launch D
kernel D
device idling due to kernel launch congestion
kernel A
kernel B
kernel C
graph launch
host activity
device activity
kernel D
Graph
speedup
\ No newline at end of file +
kernel A
kernel A
kernel B
kernel B
kernel C
kernel C
time
time
kernel D
kernel D
device idling due to kernel launch congestion
device idling due to kernel launch congestion

+
speedup
speedup
Graph
Graph
kernel launch A
kernel launch A
kernel launch B
kernel launch B
kernel launch C
kernel launch C
kernel launch D
kernel launch D
host activity
host activity
device activity
device activity
kernel A
kernel A
kernel B
kernel B
kernel C
kernel C
kernel D
kernel D
graph launch
graph launch
host activity
host activity
device activity
device activity
Streams
Streams
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.drawio index 602c7e501d..60c0ce9154 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.drawio @@ -1,104 +1,89 @@ - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - + + + + - - + + - - + + - - + + - - + + - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.svg b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.svg index 8ffb8aa965..603ad0f7a0 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/pageable_pinned.svg @@ -1 +1 @@ -Pageable data transfer
Pinned memory
Pinned memory
Pinned data transfer
Pageable memory
Pageable memory
Device memory
Device memory
Pinned memory
Pinned memory
Device memory
Device memory
Host
Host
Device
Device
Device
Device
Host
Host
Text is not SVG - cannot display
\ No newline at end of file +
Host
Host
Device
Device
Device
Device
Host
Host
Pageable data transfer
Pageable data transfer
Device memory
Device m...
Device memory
Device m...
Pageable
memory
Pageable...
Pinned
memory
Pinned...
Pinned
memory
Pinned...
Pinned data transfer
Pinned data transfer
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.drawio index c041156c5b..875d474f69 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.drawio @@ -1,29 +1,101 @@ - + - - + + - + - - - - - - - + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -71,59 +143,20 @@ - - + + - - + + - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -949,943 +982,918 @@ - - + + - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + + + + + + + + + + - - - + + + - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.svg b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.svg index 51e617d759..ae8dd58989 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/memory_management/unified_memory/um.svg @@ -1,9 +1,10 @@ -Explicit Memory Management
CPU cores
CPU cores -
CPU
CPU -
GPU Memory
(HBM)
GPU Memory...
Unified Memory Management
Unified Memory
Unified Memory
CPU Memory (RAM)
CPU Memory (RAM)
GPU
GPU -
GPU cores
GPU cores -
GPU
GPU -
CPU cores
CPU cores -
CPU
CPU -
GPU cores
GPU cores -
Text is not SVG - cannot display
\ No newline at end of file +Explicit Memory ManagementUnified Memory Management
Unified Memory
Unified Memory
GPU Memory

GPU Memory...
CPU Memory

CPU Memory +
(RAM)
(RAM)
(HBM)
(HBM)
CPU cores
CPU cores +
CPU
CPU +
GPU
GPU +
GPU cores
GPU cores +
CPU cores
CPU cores +
CPU
CPU +
GPU
GPU +
GPU cores
GPU cores +
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.drawio b/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.drawio index 2b443fe3f0..b724b7a908 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.drawio +++ b/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.drawio @@ -1,45 +1,69 @@ - + - - + + - - + + - - + + - + + + + - - + + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.svg b/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.svg index c7a05657f1..6161e48699 100644 --- a/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.svg +++ b/projects/hip/docs/data/how-to/hip_runtime_api/stream_management.svg @@ -1 +1 @@ -Stream 1
Kernel A
Kernel A
Stream 2
Memory Copy
Memory Copy
hipDeviceSynchronize
hipDeviceSynchronize
Kernel B
Kernel B
Kernel C
Kernel C
Memory Copy
Memory Copy
Memory Copy
Memory Copy
Memory Copy
Memory Copy
Text is not SVG - cannot display
\ No newline at end of file +Stream 1
Kernel A
Kernel A
Stream 2
Memory Copy
Memory Copy
Kernel B
Kernel B
Kernel C
Kernel C
Memory Copy
Memory Copy
Memory Copy
Memory Copy
Memory Copy
Memory Copy
hipDeviceSynchronize
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/graph_api/ct_reconstruction_overview.drawio b/projects/hip/docs/data/tutorial/graph_api/ct_reconstruction_overview.drawio index 49ff6261a9..15a52bad38 100644 --- a/projects/hip/docs/data/tutorial/graph_api/ct_reconstruction_overview.drawio +++ b/projects/hip/docs/data/tutorial/graph_api/ct_reconstruction_overview.drawio @@ -1,53 +1,56 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/graph_api/ct_reconstruction_overview.png b/projects/hip/docs/data/tutorial/graph_api/ct_reconstruction_overview.png index 1537299ed60fbcb5c07584d5089db634ccaf13ea..fb6e25ea69ea82ee34914f6a5035b0ab38c960e0 100644 GIT binary patch delta 100130 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
&7e>eFiGJ+|;Q2k#RpDo}?qOCE3SIhZ&t1 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 diff --git a/projects/hip/docs/data/tutorial/graph_api/diamond.drawio b/projects/hip/docs/data/tutorial/graph_api/diamond.drawio index 203efb02ce..8553b274da 100644 --- a/projects/hip/docs/data/tutorial/graph_api/diamond.drawio +++ b/projects/hip/docs/data/tutorial/graph_api/diamond.drawio @@ -1,46 +1,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/graph_api/diamond.svg b/projects/hip/docs/data/tutorial/graph_api/diamond.svg index 4c648ac7c9..04163fc7f7 100644 --- a/projects/hip/docs/data/tutorial/graph_api/diamond.svg +++ b/projects/hip/docs/data/tutorial/graph_api/diamond.svg @@ -1,4 +1,4 @@ - - - -
A
B
C
D
\ No newline at end of file +
A
A +
B
B +
C
C +
D
D
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.drawio b/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.drawio index b1f0b51074..7ae3dd6b3c 100644 --- a/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.drawio +++ b/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.drawio @@ -1,446 +1,446 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.svg b/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.svg index 71eb0660ed..37a1503c9c 100644 --- a/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.svg +++ b/projects/hip/docs/data/tutorial/reduction/conflict_free_reduction.svg @@ -1 +1 @@ -Bank conflict free reduction
Shared
Shared
5
5
13
13
0
0
8
8
2
2
1
1
7
7
42
42
2
2
23
23
10
10
3
3
Shared
Shared
7
7
42
42
23
23
10
10
7
7
42
42
23
23
10
10
0
0
1
1
Shared
Shared
23
23
42
42
23
23
10
10
7
7
42
42
23
23
10
10
0
0
Shared
Shared
42
42
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file +
Bank conflict free reduction
Bank conflict free reduction
Shared
Shared
5
5
13
13
0
0
8
8
2
2
1
1
7
7
42
42
2
2
23
23
10
10
3
3
Shared
Shared
7
7
42
42
23
23
10
10
7
7
42
42
23
23
10
10
0
0
1
1
Shared
Shared
23
23
42
42
23
23
10
10
7
7
42
42
23
23
10
10
0
0
Shared
Shared
42
42
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/foldl.drawio b/projects/hip/docs/data/tutorial/reduction/foldl.drawio index 1d5228da9e..0ca891641b 100644 --- a/projects/hip/docs/data/tutorial/reduction/foldl.drawio +++ b/projects/hip/docs/data/tutorial/reduction/foldl.drawio @@ -1,139 +1,139 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + diff --git a/projects/hip/docs/data/tutorial/reduction/foldl.svg b/projects/hip/docs/data/tutorial/reduction/foldl.svg index 7603080193..c50fca349b 100644 --- a/projects/hip/docs/data/tutorial/reduction/foldl.svg +++ b/projects/hip/docs/data/tutorial/reduction/foldl.svg @@ -1 +1 @@ -Fold-left
Input
Input
8
8
13
13
5
5
z
z
5
5
f(z,5)
f(z,5)
5
5
13
13
f(f(z,5),13)
f(f(z,5...
13
13
8
8
f(f(f(z,5),13),8)
f(f(f(z...
Result
Result
13
13
Text is not SVG - cannot display
\ No newline at end of file +
Fold-left
Fold-left
Input
Input
8
8
13
13
5
5
z
z
5
5
f(z,5)
f(z,5)
5
5
13
13
f(f(z,5),13)
f(f(z,5)...
13
13
8
8
f(f(f(z,5),13),8)
f(f(f(z...
Result
Result
13
13
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/naive_reduction.svg b/projects/hip/docs/data/tutorial/reduction/naive_reduction.svg index 922bfff1e9..8bfed7a413 100644 --- a/projects/hip/docs/data/tutorial/reduction/naive_reduction.svg +++ b/projects/hip/docs/data/tutorial/reduction/naive_reduction.svg @@ -1 +1 @@ -Naive Shared Reduction
Shared
Shared
5
5
13
13
0
0
8
8
2
2
2
2
7
7
42
42
4
4
23
23
10
10
6
6
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
4
4
23
23
10
10
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
23
23
10
10
Shared
Shared
42
42
13
13
8
8
2
2
42
42
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file +
Naive Shared Reduction
Naive Shared Reduction
Shared
Shared
5
5
13
13
0
0
8
8
2
2
2
2
7
7
42
42
4
4
23
23
10
10
6
6
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
4
4
23
23
10
10
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
23
23
10
10
Shared
Shared
42
42
13
13
8
8
2
2
42
42
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/parallel_foldl.drawio b/projects/hip/docs/data/tutorial/reduction/parallel_foldl.drawio index 6b04c73cc2..186e7e156d 100644 --- a/projects/hip/docs/data/tutorial/reduction/parallel_foldl.drawio +++ b/projects/hip/docs/data/tutorial/reduction/parallel_foldl.drawio @@ -1,141 +1,141 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + diff --git a/projects/hip/docs/data/tutorial/reduction/parallel_foldl.svg b/projects/hip/docs/data/tutorial/reduction/parallel_foldl.svg index d5edb0accb..bb9220caa5 100644 --- a/projects/hip/docs/data/tutorial/reduction/parallel_foldl.svg +++ b/projects/hip/docs/data/tutorial/reduction/parallel_foldl.svg @@ -1 +1 @@ -Parallel Reduce
Input
Input
8
8
13
13
5
5
z
z
5
5
f(z,5)
f(z,5)
13
13
8
8
f(13,8)
f(13,8)
5
5
13
13
f(f(z,5),f(13,8))
f(f(z,5...
Result
Result
13
13
Text is not SVG - cannot display
\ No newline at end of file +
Input
Input
8
8
13
13
5
5
z
z
5
5
f(z,5)
f(z,5)
13
13
8
8
f(13,8)
f(13,8)
5
5
13
13
f(f(z,5),f(13,8))
f(f(z,5...
Result
Result
13
13
Parallel Reduce
Parallel Reduce
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.drawio b/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.drawio index 0f1bd277ad..accdaeb01b 100644 --- a/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.drawio +++ b/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.drawio @@ -1,440 +1,440 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - - - + - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - - - - - - - - - + - - + + - - + + + + + - - + + - - + + - - + + - - + + - - + + + + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.svg b/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.svg index 9661e05115..94533ea99d 100644 --- a/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.svg +++ b/projects/hip/docs/data/tutorial/reduction/reduced_divergence_reduction.svg @@ -1 +1 @@ -Reduced Divergence Reduction
Shared
Shared
5
5
13
13
0
0
8
8
2
2
1
1
7
7
42
42
2
2
23
23
10
10
3
3
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
1
1
23
23
10
10
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
23
23
10
10
Shared
Shared
42
42
13
13
8
8
2
2
42
42
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file +
Reduced Divergence Reduction
Reduced Divergence Reduction
Shared
Shared
5
5
13
13
0
0
8
8
2
2
1
1
7
7
42
42
2
2
23
23
10
10
3
3
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
1
1
23
23
10
10
Shared
Shared
13
13
13
13
0
0
8
8
2
2
42
42
42
42
23
23
10
10
Shared
Shared
42
42
13
13
8
8
2
2
42
42
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/warp_reduction.drawio b/projects/hip/docs/data/tutorial/reduction/warp_reduction.drawio index 583f90cdd2..9d5fbcd928 100644 --- a/projects/hip/docs/data/tutorial/reduction/warp_reduction.drawio +++ b/projects/hip/docs/data/tutorial/reduction/warp_reduction.drawio @@ -1,420 +1,414 @@ - + - - + + - - + + - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + + + + + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + + + + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/hip/docs/data/tutorial/reduction/warp_reduction.svg b/projects/hip/docs/data/tutorial/reduction/warp_reduction.svg index ec8d0a829b..fc642b6eb3 100644 --- a/projects/hip/docs/data/tutorial/reduction/warp_reduction.svg +++ b/projects/hip/docs/data/tutorial/reduction/warp_reduction.svg @@ -1,2 +1 @@ -Warp reduction
Local
Local
5
5
13
13
0
0
8
8
2
2
1
1
7
7
42
42
2
2
23
23
10
10
3
3
Local
Local
7
7
42
42
23
23
10
10
7
7
42
42
23
23
10
10
0
0
1
1
Local
Local
23
23
42
42
23
23
10
10
7
7
42
42
23
23
10
10
0
0
Local
Local -
42
42
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file +
Warp Reduction
Warp Reduction
Local
Local
5
5
13
13
0
0
8
8
2
2
1
1
7
7
42
42
2
2
23
23
10
10
3
3
Local
Local
7
7
42
42
0
0
23
23
10
10
7
7
42
42
1
1
23
23
10
10
Local
Local
23
23
42
42
0
0
23
23
10
10
7
7
42
42
23
23
10
10
Local
Local
42
42
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Thread IDs
Thread...
Data snapshot
Data sn...
Data snapshot
Data sn...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.drawio b/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.drawio index 338407f45e..b60732bb94 100644 --- a/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.drawio +++ b/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.drawio @@ -1,704 +1,719 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + + + + - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - + - + - + - - - - - - - - + diff --git a/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.svg b/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.svg index 65b6d642b8..1967afeeb9 100644 --- a/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.svg +++ b/projects/hip/docs/data/tutorial/reduction/warp_reduction_with_shared.svg @@ -1,3 +1 @@ -Warp reduction
Local
Local
5
5
13
13
8
8
2
2
7
7
42
42
23
23
10
10
7
7
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Local
Local
23
23
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Local
Local -
42
42
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Warp reduction
Local
Local
3
3
2
2
4
4
1
1
7
7
11
11
8
8
14
14
10
10
13
13
12
12
15
15
7
7
11
11
8
8
14
14
Local
Local
22
22
28
28
12
12
15
15
7
7
11
11
8
8
14
14
Local
Local -
50
50
28
28
12
12
15
15
7
7
11
11
8
8
14
14
Local
Local
92
92
50
50
Local
Local
42
42
50
50
Shared
Shared
42
42
50
50
Warp reduction with shared memory
Local
Local
Local
Local
Text is not SVG - cannot display
\ No newline at end of file +
Warp reduction
Warp reduction
Local
Local
5
5
13
13
8
8
2
2
7
7
42
42
23
23
10
10
Local
Local
7
7
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Local
Local
23
23
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Local
Local
42
42
42
42
23
23
10
10
7
7
42
42
23
23
10
10
Warp reduction
Warp reduction
Local
Local
3
3
2
2
4
4
1
1
7
7
11
11
8
8
14
14
Local
Local
10
10
13
13
12
12
15
15
7
7
11
11
8
8
14
14
Local
Local
22
22
28
28
12
12
15
15
7
7
11
11
8
8
14
14
Local
Local
50
50
28
28
12
12
15
15
7
7
11
11
8
8
14
14
Warp reduction with shared memory
Warp reduction with shared memory
42
42
50
50
Shared
Shared
42
42
50
50
Local
Local
92
92
50
50
Local
Local
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/hardware_implementation/compute_unit.drawio b/projects/hip/docs/data/understand/hardware_implementation/compute_unit.drawio index 3e1d18a8a8..29a24786ef 100644 --- a/projects/hip/docs/data/understand/hardware_implementation/compute_unit.drawio +++ b/projects/hip/docs/data/understand/hardware_implementation/compute_unit.drawio @@ -1,187 +1,187 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/hip/docs/data/understand/hardware_implementation/compute_unit.svg b/projects/hip/docs/data/understand/hardware_implementation/compute_unit.svg index 49adbc8e45..77b2bd947a 100644 --- a/projects/hip/docs/data/understand/hardware_implementation/compute_unit.svg +++ b/projects/hip/docs/data/understand/hardware_implementation/compute_unit.svg @@ -1,4 +1,9 @@ - - - -Compute Unit
Vector Caches
Vector Caches
SIMD 0
SIMD 0
Vector ALU
Vector ALU
Vector
Register
File
Vector...
SIMD 2
SIMD 2
Vector ALU
Vector ALU
Vector
Register
File
Vector...
SIMD 3
SIMD 3
Vector ALU
Vector ALU
Vector
Register
File
Vector...
SIMD 1
SIMD 1
Vector ALU
Vector ALU
Vector
Register
File
Vector...
Scalar ALU
Scalar ALU
Scalar Unit
Scalar Unit
Scalar
Register
File
Scalar...
Local Data Share
Local Data Share
Text is not SVG - cannot display
\ No newline at end of file +
Compute Unit
Compute Unit
Vector Caches
Vector Caches
SIMD 0
SIMD 0
Vector
Register
File
Vector...
Vector ALU
Vector ALU +
SIMD 2
SIMD 2 +
Vector
Register
File
Vector...
Vector ALU
Vector ALU +
SIMD 3
SIMD 3 +
Vector
Register
File
Vector...
Vector ALU
Vector ALU +
SIMD 1
SIMD 1 +
Vector
Register
File
Vector...
Scalar ALU
Scalar ALU +
Scalar Unit
Scalar Unit
Scalar
Register
File
Scalar...
Local Data Share
Local Data Share
Vector ALU
Vector ALU +
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.drawio b/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.drawio index a7e851b3d5..0570f51009 100644 --- a/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.drawio +++ b/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.drawio @@ -1,179 +1,473 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.svg b/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.svg index 552290299f..ca2c7e8a02 100644 --- a/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.svg +++ b/projects/hip/docs/data/understand/programming_model/cpu-gpu-comparison.svg @@ -1 +1 @@ -
CPU versus GPU Architecture
CPU versus GPU Archite...
CPU
CPU
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
GPU
GPU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
Large Complex Cores
Large Complex Cores
High Clock Speed (3-5 GHz)
High Clock Speed (3-5 GHz)
Many Simple Cores
Many Simple Cores
Lower Clock Speed (1-2 GHz)
Lower Clock Speed (1-2 GHz)
Large Cache per Core
Large Cache per Core
Shared Memory across Cores
Shared Memory across Cores
Text is not SVG - cannot display
\ No newline at end of file +
CPU versus GPU Architecture
CPU versus GPU Architecture
CPU
CPU
GPU
GPU
Large Complex Cores
Large Complex Cores
High Clock Speed (3-5 GHz)
High Clock Speed (3-5 GHz)
Many Simple Cores
Many Simple Cores
Lower Clock Speed (1-2 GHz)
Lower Clock Speed (1-2 GHz)
Large Cache per Core
Large Cache per Core
Shared Memory across Cores
Shared Memory across Cores
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CPU Core
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
CU
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/host-device-flow.drawio b/projects/hip/docs/data/understand/programming_model/host-device-flow.drawio index 2ee8c43ae9..ac06235bd7 100644 --- a/projects/hip/docs/data/understand/programming_model/host-device-flow.drawio +++ b/projects/hip/docs/data/understand/programming_model/host-device-flow.drawio @@ -1,61 +1,118 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/understand/programming_model/host-device-flow.svg b/projects/hip/docs/data/understand/programming_model/host-device-flow.svg index 02bce96c5d..04a4a88484 100644 --- a/projects/hip/docs/data/understand/programming_model/host-device-flow.svg +++ b/projects/hip/docs/data/understand/programming_model/host-device-flow.svg @@ -1 +1 @@ -
Host-Device Data Flow
Host-Device Data Flow
Host (CPU)
Host (CPU)
Device (GPU)
Device (GPU)
1. Initialize
1. Initialize
2. Transfer Data
2. Transfer Data
3. Execute Kernel
3. Execute Kernel
4. Return Results
4. Return Results
Text is not SVG - cannot display
\ No newline at end of file +
Host-Device Data Flow
Host-Device Data Flow
Host
Host
Device
Device
(CPU)
(CPU)
(GPU)
(GPU)
Initialize
Initialize
1.
1.
Transfer Data
Transfer Data
2.
2.
Execute Kernel
Execute Kernel
3.
3.
Return Results
Return Results
4.
4.
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/memory-access.drawio b/projects/hip/docs/data/understand/programming_model/memory-access.drawio index 3577772532..6e50c1753a 100644 --- a/projects/hip/docs/data/understand/programming_model/memory-access.drawio +++ b/projects/hip/docs/data/understand/programming_model/memory-access.drawio @@ -1,234 +1,237 @@ - - - + + + - - + + - - + + - - + + - - + + - + + + + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/projects/hip/docs/data/understand/programming_model/memory-access.svg b/projects/hip/docs/data/understand/programming_model/memory-access.svg index 5f0dbd8aae..1585a3f5b7 100644 --- a/projects/hip/docs/data/understand/programming_model/memory-access.svg +++ b/projects/hip/docs/data/understand/programming_model/memory-access.svg @@ -1 +1 @@ -
Memory Access Patterns
Memory Access Patterns
Uncoalesced Access
Uncoalesced Access
Threads
Threads
Memory
Memory
Coalesced Access
Coalesced Access
Threads
Threads
Memory
Memory
0
0
...
...
...
...
63
63
0
0
...
...
...
...
63
63
0
0
...
...
...
...
63
63
0
0
...
...
...
...
63
63
Text is not SVG - cannot display
\ No newline at end of file +
Memory Access Patterns
Memory Access Patterns
Uncoalesced Access
Uncoalesced Access
Threads
Threads
Memory
Memory
Coalesced Access
Coalesced Access
Threads
Threads
Memory
Memory
0
0
...
...
...
...
63
63
0
0
...
...
...
...
63
63
0
0
...
...
...
...
63
63
0
0
...
...
...
...
63
63
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/memory_hierarchy.drawio b/projects/hip/docs/data/understand/programming_model/memory_hierarchy.drawio index 21c801a62d..956fcc886c 100644 --- a/projects/hip/docs/data/understand/programming_model/memory_hierarchy.drawio +++ b/projects/hip/docs/data/understand/programming_model/memory_hierarchy.drawio @@ -1,398 +1,386 @@ - + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/understand/programming_model/memory_hierarchy.svg b/projects/hip/docs/data/understand/programming_model/memory_hierarchy.svg index 7599e7b5d3..c8f2c5cdde 100644 --- a/projects/hip/docs/data/understand/programming_model/memory_hierarchy.svg +++ b/projects/hip/docs/data/understand/programming_model/memory_hierarchy.svg @@ -1 +1 @@ -Grid
Block
Block
%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20face%3D%26quot%3BKlavika%26quot%3B%20style%3D%26quot%3Bfont-size%3A%2017px%3B%26quot%3B%26gt%3BCluster%20shared%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3BfontSize%3D17%3BfontColor%3D%23FFFFFF%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221007.5%22%20y%3D%22150%22%20width%3D%22115%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
%3CmxGraphModel%3E...
Warp
Warp
Warp
Warp
Local
Local
Shared
Shared
Block
Block
Warp
Warp
Warp
Warp
Local
Local
Shared
Shared
Global
Global
%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20face%3D%26quot%3BKlavika%26quot%3B%20style%3D%26quot%3Bfont-size%3A%2017px%3B%26quot%3B%26gt%3BCluster%20shared%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3BfontSize%3D17%3BfontColor%3D%23FFFFFF%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221007.5%22%20y%3D%22150%22%20width%3D%22115%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
%3CmxGraphModel...
Constant
Constant
Texture
Texture
Surface
Surface
Text is not SVG - cannot display
\ No newline at end of file +
Grid
Grid
Block
Block
Local
Local
Shared
Shared
Block
Block
Local
Local
Shared
Shared
Global
Global
%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20face%3D%26quot%3BKlavika%26quot%3B%20style%3D%26quot%3Bfont-size%3A%2017px%3B%26quot%3B%26gt%3BCluster%20shared%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3BfontSize%3D17%3BfontColor%3D%23FFFFFF%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221007.5%22%20y%3D%22150%22%20width%3D%22115%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
%3CmxGraphM...
Constant
Constant
Texture
Texture
Surface
Surface
%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20face%3D%26quot%3BKlavika%26quot%3B%20style%3D%26quot%3Bfont-size%3A%2017px%3B%26quot%3B%26gt%3BCluster%20shared%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3BfontSize%3D17%3BfontColor%3D%23FFFFFF%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221007.5%22%20y%3D%22150%22%20width%3D%22115%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
%3CmxGraphMode...
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/multi-gpu.drawio b/projects/hip/docs/data/understand/programming_model/multi-gpu.drawio index 17eca3c318..00d823794a 100644 --- a/projects/hip/docs/data/understand/programming_model/multi-gpu.drawio +++ b/projects/hip/docs/data/understand/programming_model/multi-gpu.drawio @@ -1,62 +1,77 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/projects/hip/docs/data/understand/programming_model/multi-gpu.svg b/projects/hip/docs/data/understand/programming_model/multi-gpu.svg index 190f2593d2..c096549f57 100644 --- a/projects/hip/docs/data/understand/programming_model/multi-gpu.svg +++ b/projects/hip/docs/data/understand/programming_model/multi-gpu.svg @@ -1 +1 @@ -
Multi-GPU Workload Distribution
Multi-GPU Workload Distribution
Host CPU
Host CPU
GPU 0
GPU 0
GPU 1
GPU 1
GPU 2
GPU 2
GPU 3
GPU 3
25%
25%
25%
25%
25%
25%
25%
25%
Text is not SVG - cannot display
\ No newline at end of file +
Multi-GPU Workload Distribution
Multi-GPU Workload Distribution
Host CPU
Host CPU
25%
25%
25%
25%
25%
25%
25%
25%
GPU 0
GPU 0
GPU 1
GPU 1
GPU 2
GPU 2
GPU 3
GPU 3
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/simt-execution.svg b/projects/hip/docs/data/understand/programming_model/simt-execution.svg index 412b9265e7..f9148d192a 100644 --- a/projects/hip/docs/data/understand/programming_model/simt-execution.svg +++ b/projects/hip/docs/data/understand/programming_model/simt-execution.svg @@ -1 +1 @@ -
SIMT Execution Model
SIMT Execution Model
a[i] = b[i] + c[i]
a[i] = b[i] + c[i]
Thread 0
Thread 0
b[0] = 5
b[0] = 5
c[0] = 3
c[0] = 3
a[0] = 8
a[0] = 8
Thread 1
Thread 1
b[1] = 2
b[1] = 2
c[1] = 4
c[1] = 4
a[1] = 6
a[1] = 6
Thread 2
Thread 2
b[2] = 7
b[2] = 7
c[2] = 1
c[2] = 1
a[2] = 8
a[2] = 8
Thread 3
Thread 3
b[3] = 3
b[3] = 3
c[3] = 5
c[3] = 5
a[3] = 8
a[3] = 8
Text is not SVG - cannot display
\ No newline at end of file +
SIMT Execution Model
SIMT Execution Model
Thread 0
Thread 0
b[0] = 5
b[0] = 5
c[0] = 3
c[0] = 3
a[0] = 8
a[0] = 8
Thread 1
Thread 1
b[1] = 2
b[1] = 2
c[1] = 4
c[1] = 4
a[1] = 6
a[1] = 6
Thread 2
Thread 2
b[2] = 7
b[2] = 7
c[2] = 1
c[2] = 1
a[2] = 8
a[2] = 8
Thread 3
Thread 3
b[3] = 3
b[3] = 3
c[3] = 5
c[3] = 5
a[3] = 8
a[3] = 8
a[i] = b[i] + c[i]
a[i] = b[i] + c[i]
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/stream-workflow.drawio b/projects/hip/docs/data/understand/programming_model/stream-workflow.drawio index 616dd28d78..b41854f530 100644 --- a/projects/hip/docs/data/understand/programming_model/stream-workflow.drawio +++ b/projects/hip/docs/data/understand/programming_model/stream-workflow.drawio @@ -1,95 +1,95 @@ - - - + + + - - + + - + + + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - - - - + + diff --git a/projects/hip/docs/data/understand/programming_model/stream-workflow.svg b/projects/hip/docs/data/understand/programming_model/stream-workflow.svg index 9648351cad..f6e9546b67 100644 --- a/projects/hip/docs/data/understand/programming_model/stream-workflow.svg +++ b/projects/hip/docs/data/understand/programming_model/stream-workflow.svg @@ -1 +1 @@ -
Stream and Event Workflow
Stream and Event Workf...
Stream 1
Stream 1
Stream 2
Stream 2
Stream 3
Stream 3
Operation
Operation
Event
Event
Text is not SVG - cannot display
\ No newline at end of file +
Stream and Event Workflow
Stream and Event Workflow
Stream 1
Stream 1
Stream 2
Stream 2
Stream 3
Stream 3
Operation
Operation
Event
Event
Text is not SVG - cannot display
\ No newline at end of file diff --git a/projects/hip/docs/data/understand/programming_model/thread_hierarchy.drawio b/projects/hip/docs/data/understand/programming_model/thread_hierarchy.drawio index 61ac9aa59c..a86f2dad66 100644 --- a/projects/hip/docs/data/understand/programming_model/thread_hierarchy.drawio +++ b/projects/hip/docs/data/understand/programming_model/thread_hierarchy.drawio @@ -1,8329 +1,1081 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - + + - - + + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - - - - + + - - - - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - - - - + + - - - - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - - + + - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - - + - - - - - - - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - + - - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + diff --git a/projects/hip/docs/data/understand/programming_model/thread_hierarchy.svg b/projects/hip/docs/data/understand/programming_model/thread_hierarchy.svg index 62a1b14d50..744a9c54a6 100644 --- a/projects/hip/docs/data/understand/programming_model/thread_hierarchy.svg +++ b/projects/hip/docs/data/understand/programming_model/thread_hierarchy.svg @@ -1,3 +1 @@ - - -Grid
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Text is not SVG - cannot display
\ No newline at end of file +
Grid
Grid
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Warp
Block
Block
Warp
Warp
Warp
Warp
Warp
Warp
Text is not SVG - cannot display
\ No newline at end of file