Enhance tensor management and CUDA utilities with benchmarks#51
Merged
Conversation
- Implement `TensorShape` struct aligned to 16-byte boundaries. - Add host/device `numel()` method to compute total element count. - Add host-side `compute_strides()` and `is_contiguous()` logic for row-major layouts. - Provide initialization shortcuts for 1D, 2D, 3D, and 4D tensor shapes.
- Implement warp-level parallel reductions using `__shfl_xor_sync` (Sum, Max, Min). - Implement a `warpBroadcast` helper utility targeting lane 0. - Introduce skeleton for a shared-memory backed `blockReduceSum`. - Guard all device-specific primitives behind `__CUDACC__` flags.
…45) ## Summary - Project Versioning: Sets the starting project version to 0.1.0. - Code Shortcuts (Macros): Creates clean shorthand terms for CUDA keywords (like wrapping __device__ into QX_DEVICE) to make writing GPU kernels cleaner. - Math & Memory Utilities: Adds fast math helpers for aligning memory, rounding numbers, and calculating power-of-two boundaries quickly. - Memory Optimization: Forces a 128-byte memory alignment to ensure the GPU can read data as fast as possible (coalesced memory access). - Automatic Error Checking: Introduces safety wrappers (CUDA_CHECK, CUBLAS_CHECK, NCCL_CHECK) that instantly watch for crashes or failures in Nvidia's core hardware and math libraries, making debugging much easier.
- Implement memory wrappers for host (`malloc`), pinned host (`cudaMallocHost`), and aligned device allocations (`cudaMalloc`). - Enforce strict memory layout by rounding up device bytes to `QX_MEM_ALIGN`. - Add `tensor_alloc_device` and `tensor_alloc_host` factory allocators with automatic initialization. - Implement unified `tensor_free` handling safe deallocations across all memory spaces. - Add async Host-to-Device (`tensor_h2d`) copy routine.
- Implement memory wrappers for host (`malloc`), pinned host (`cudaMallocHost`), and aligned device allocations (`cudaMalloc`). - Enforce strict memory layout by rounding up device bytes to `QX_MEM_ALIGN`. - Add `tensor_alloc_device` and `tensor_alloc_host` factory allocators with automatic initialization. - Implement unified `tensor_free` handling safe deallocations across all memory spaces. - Add async Host-to-Device (`tensor_h2d`) copy routine.
…edundant code and improved readability.
Eamon2009
added a commit
that referenced
this pull request
May 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.