Sparse-checkout from NVIDIA/cccl main branch to complete cccl_upstream: Added: - python/cuda_cccl/ (226 files) — Python bindings for device-level algorithms Critical for muh toolchain: cuda.compute.reduce_into, scan, radix_sort, etc. Includes 204 .py files with full test coverage for all 27 algorithms - ci/ (163 files) — Build/test infrastructure build_cub.sh, test_cub.sh, build_and_test_targets.sh, matrix.yaml Directly maps to our [INFRA-CI] and [INFRA-BUILD] items - .agent/skills/ (7 files) — NVIDIA's own agent skills for CCCL cccl-style/SKILL.md, cccl-test/SKILL.md, sass-diff/SKILL.md - docs/ (491 files) — Official CCCL documentation CI references, CMake guides, Python compute docs, libcudacxx PTX docs - test/ (12 files) — Top-level integration tests (cuda_smoke, stdpar) - Root configs: .clang-format, .clang-tidy, CONTRIBUTING.md, pyproject.toml - CLAUDE.md symlink → AGENTS.md (NVIDIA's standard) cccl_upstream now mirrors full NVIDIA/cccl structure: Before: 42M (cub + thrust + libcudacxx + cudax + c + examples + benchmarks) After: 53M (+python +ci +docs +.agent +test +configs) This completes the CCCL base needed for: - [muh-bench] items: ci/util/build_and_test_targets.sh for targeted builds - [CCCL-verify] items: python/cuda_cccl/tests/ as reference implementations - [CCCL-test] items: ci/test_cub.sh, ci/test_thrust.sh - Agent workflow: .agent/skills/ for consistent style and test patterns
85 lines
2.6 KiB
ReStructuredText
85 lines
2.6 KiB
ReStructuredText
.. _libcudacxx-extended-api-memory:
|
|
|
|
Memory
|
|
======
|
|
|
|
.. toctree::
|
|
:hidden:
|
|
:maxdepth: 1
|
|
|
|
memory/align_down
|
|
memory/align_up
|
|
memory/aligned_size
|
|
memory/discard_memory
|
|
memory/get_device_address
|
|
memory/is_address_from
|
|
memory/is_aligned
|
|
memory/ptr_rebind
|
|
memory/ptr_in_range
|
|
memory/ranges_overlap
|
|
memory/is_pointer_accessible
|
|
|
|
.. list-table::
|
|
:widths: 25 45 30 30
|
|
:header-rows: 1
|
|
|
|
* - **Header**
|
|
- **Content**
|
|
- **CCCL Availability**
|
|
- **CUDA Toolkit Availability**
|
|
|
|
* - :ref:`aligned_size_t <libcudacxx-extended-api-memory-aligned-size>`
|
|
- Defines an extent of bytes with a statically defined alignment.
|
|
- libcu++ 1.2.0 / CCCL 2.0.0 (in ``<cuda/memory>`` since CCCL 3.1.0)
|
|
- CUDA 11.1
|
|
|
|
* - :ref:`discard_memory <libcudacxx-extended-api-memory-discard-memory>`
|
|
- Writes indeterminate values to memory
|
|
- libcu++ 1.6.0 / CCCL 2.0.0 (in ``<cuda/memory>`` since CCCL 3.1.0)
|
|
- CUDA 11.5
|
|
|
|
* - :ref:`get_device_address <libcudacxx-extended-api-memory-get-device-address>`
|
|
- Returns a valid address to a device object
|
|
- CCCL 2.8.0 (in ``<cuda/memory>`` since CCCL 3.1.0)
|
|
- CUDA 12.9
|
|
|
|
* - :ref:`is_address_from and is_object_from <libcudacxx-extended-api-memory-is_address_from>`
|
|
- Check if a pointer or object is from a specific address space
|
|
- CCCL 3.1.0
|
|
- CUDA 13.1
|
|
|
|
* - :ref:`is_aligned <libcudacxx-extended-api-memory-is_aligned>`
|
|
- Check if a pointer is aligned
|
|
- CCCL 3.1.0
|
|
- CUDA 13.1
|
|
|
|
* - :ref:`align_up <libcudacxx-extended-api-memory-align_up>`
|
|
- Align up a pointer to the specified alignment
|
|
- CCCL 3.1.0
|
|
- CUDA 13.1
|
|
|
|
* - :ref:`align_down <libcudacxx-extended-api-memory-align_down>`
|
|
- Align down a pointer to the specified alignment
|
|
- CCCL 3.1.0
|
|
- CUDA 13.1
|
|
|
|
* - :ref:`ptr_rebind <libcudacxx-extended-api-memory-ptr_rebind>`
|
|
- Rebind a pointer to a different type
|
|
- CCCL 3.1.0
|
|
- CUDA 13.1
|
|
|
|
* - :ref:`ptr_in_range <libcudacxx-extended-api-memory-ptr_in_range>`
|
|
- Check if a pointer is in a range
|
|
- CCCL 3.1.0
|
|
- CUDA 13.1
|
|
|
|
* - :ref:`ranges_overlap <libcudacxx-extended-api-memory-ranges_overlap>`
|
|
- Check if two ranges overlap
|
|
- CCCL 3.2.0
|
|
- CUDA 13.2
|
|
|
|
* - :ref:`is_host_accessible <libcudacxx-extended-api-memory-is_pointer_accessible>`, :ref:`is_device_accessible <libcudacxx-extended-api-memory-is_pointer_accessible>`, :ref:`is_managed <libcudacxx-extended-api-memory-is_pointer_accessible>`
|
|
- Check if a pointer is accessible from the host, device, or managed memory
|
|
- CCCL 3.2.0
|
|
- CUDA 13.2
|