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.7 KiB
Plaintext
64 lines
2.7 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 ===============
|