CCCL (CUDA C++ Core Libraries) provides: - CUB: device/block/warp-level GPU primitives (reduce, scan, sort, topk) - Thrust: high-level parallel algorithms (transform_reduce, sort, scan) - libcudacxx: CUDA C++ standard library (atomics, barriers, memory) - cudax: experimental features (memory resources, allocators) - Tuning policies: per-SM hardware-specific algorithm parameters Competition optimization vectors mapped to CCCL: - Output TPS (83% weight): warp_reduce, block_reduce, device_topk - Input TPS (14% weight): device_scan, block_load, prefetch - Cache TPS (3% weight): prefix caching strategy patterns - Memory (0.9 util): pooled/cached/buddy allocators Source: https://github.com/NVIDIA/cccl (shallow clone, HEAD only) License: Apache-2.0
64 lines
2.6 KiB
Plaintext
64 lines
2.6 KiB
Plaintext
=============== buffer.normal begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=10, align=4, data=<address> (device) {
|
|
[0] = -56
|
|
[1] = 22
|
|
[2] = 94
|
|
[3] = -13
|
|
[4] = 7
|
|
[5] = 41
|
|
[6] = -82
|
|
[7] = 0
|
|
[8] = 63
|
|
[9] = -5
|
|
}
|
|
=============== buffer.normal end ===============
|
|
=============== buffer.alias begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=4, align=4, data=<address> (device) {
|
|
[0] = 17
|
|
[1] = -31
|
|
[2] = 8
|
|
[3] = 55
|
|
}
|
|
=============== buffer.alias end ===============
|
|
=============== buffer.vector.0 begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=3, align=4, data=<address> (device) {
|
|
[0] = -2
|
|
[1] = 4
|
|
[2] = 6
|
|
}
|
|
=============== buffer.vector.0 end ===============
|
|
=============== buffer.vector.1 begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=3, align=4, data=<address> (device) {
|
|
[0] = 11
|
|
[1] = -9
|
|
[2] = 27
|
|
}
|
|
=============== buffer.vector.1 end ===============
|
|
=============== buffer.host_device begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible, cuda::mr::host_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible, cuda::mr::host_accessible> @ <address>, stream=<address>, size=4, align=4, data=<address> (host/device) {
|
|
[0] = 3
|
|
[1] = 14
|
|
[2] = -15
|
|
[3] = 92
|
|
}
|
|
=============== buffer.host_device end ===============
|
|
=============== buffer.empty begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=0, align=4, data=0x0 (device)
|
|
=============== buffer.empty end ===============
|
|
=============== buffer.update.before begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=4, align=4, data=<address> (device) {
|
|
[0] = 1
|
|
[1] = 2
|
|
[2] = 3
|
|
[3] = 4
|
|
}
|
|
=============== buffer.update.before end ===============
|
|
=============== buffer.update.after begin ===============
|
|
(cuda::buffer<int, cuda::mr::device_accessible>) mr=cuda::mr::any_resource<cuda::mr::device_accessible> @ <address>, stream=<address>, size=4, align=4, data=<address> (device) {
|
|
[0] = -8
|
|
[1] = 13
|
|
[2] = 21
|
|
[3] = -34
|
|
}
|
|
=============== buffer.update.after end ===============
|