Ecosystem of libraries and tools for writing and executing fast GPU code fully in Rust.
This report summarizes scanner evidence for Rust-GPU/rust-cuda, a Rust project with 5,406 GitHub stars. SynthScan examined 102,053 lines of code across 481 source files, recording 688 pattern matches distributed across 3 syntactic categories. The legacy adjusted pattern signal is 6.7 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 688 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 0 finding(s).
Which changes need focused human review? 688 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 688 distinct pattern matches across 3 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 21 | # OPTIX_DISABLED: These crates that rely on OptiX are disabled because OptiX is less important | COMMENT |
| LOW | guide/src/guide/getting_started.md | 261 | // - The first two parameters between the triple angle brackets specify 1 | COMMENT |
| LOW | crates/nvvm/src/lib.rs | 61 | } | COMMENT |
| LOW | crates/nvvm/src/lib.rs | 261 | /// | COMMENT |
| LOW | crates/nvvm/src/lib.rs | 281 | /// | COMMENT |
| LOW | crates/nvvm/src/lib.rs | 501 | Self::Compute121 => "compute_121", | COMMENT |
| LOW | crates/nvvm/src/lib.rs | 521 | /// let features = Compute61.all_target_features(); | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 61 | path_to_crate: PathBuf, | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 81 | /// you are using recent features such as tensor cores (which need at least 7.x). | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 101 | /// forward-compatible within same major version (10.0, 10.3, etc.) but NOT across | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 121 | /// // Code that requires compute capability 6.1+ will be emitted because it matches | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 141 | pub ftz: bool, | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 161 | /// Code compiled with this option should always work under CUDA, but it might not be the most efficient or practica | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 181 | /// The default is `false`, which places all statics in global memory. This avoids | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 301 | self.ptx_file_copy_path = Some(path.as_ref().to_path_buf()); | COMMENT |
| LOW | crates/cuda_builder/src/lib.rs | 321 | /// exposes the option to automatically override any calls to libm functions with calls to libdevice functions. | COMMENT |
| LOW | crates/ptx/src/types.rs | 201 | #[derive(Debug, Clone, PartialEq)] | COMMENT |
| LOW | crates/cuda_std_macros/src/lib.rs | 1 | use proc_macro::TokenStream; | COMMENT |
| LOW | crates/cuda_std_macros/src/lib.rs | 141 | /// `local`. | COMMENT |
| LOW | crates/cuda_std_macros/src/lib.rs | 161 | /// Shared memory usage is fundamentally unsafe and much of the burden of correctness is on the | COMMENT |
| LOW | crates/cuda_std_macros/src/lib.rs | 181 | /// pub unsafe fn reverse_array(d: *mut u32, n: usize) { | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 61 | /// | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 121 | /// | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 181 | .to_result()?) | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 201 | /// # let stream = Stream::new(StreamFlags::DEFAULT, None)?; | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 261 | /// Panics if `x` or `y` are not large enough for the requested amount of elements. | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 321 | result.as_device_ptr().as_mut_ptr(), | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 341 | /// # let _a = cust::quick_init()?; | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 501 | /// # Panics | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 581 | /// -s & c | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 601 | /// $$ | COMMENT |
| LOW | crates/blastoff/src/level1.rs | 621 | /// let s = DeviceBox::new(&0.0)?; | COMMENT |
| LOW | crates/blastoff/src/level3.rs | 61 | COMMENT | |
| LOW | crates/blastoff/src/context.rs | 21 | /// also use tensor cores when possible. | COMMENT |
| LOW | crates/blastoff/src/context.rs | 41 | /// so we do not expose this functionality. Instead, you should create a context for every thread (as the cuBLAS docs re | COMMENT |
| LOW | crates/blastoff/src/context.rs | 61 | /// - [Dot Product <span style="float:right;">`dot`</span>](CublasContext::dot) | COMMENT |
| LOW | crates/blastoff/src/context.rs | 81 | /// | COMMENT |
| LOW | crates/blastoff/src/context.rs | 161 | } | COMMENT |
| LOW | crates/blastoff/src/context.rs | 201 | /// Returns `false` unless previously explicitly set to `true`. | COMMENT |
| LOW | crates/blastoff/src/context.rs | 221 | cublas_sys::cublasAtomicsMode_t::CUBLAS_ATOMICS_NOT_ALLOWED => false, | COMMENT |
| LOW | crates/blastoff/src/context.rs | 241 | Ok(cublas_sys::cublasSetMathMode( | COMMENT |
| LOW | crates/blastoff/src/context.rs | 261 | /// # } | COMMENT |
| LOW | crates/blastoff/src/context.rs | 281 | /// ``` | COMMENT |
| LOW | crates/optix/examples/common/gdt/CMakeLists.txt | 1 | # ======================================================================== # | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/gdt.cpp | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/gdt.h | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/gdt.h | 21 | #include <stdexcept> | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/gdt.h | 41 | #endif | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/gdt.h | 61 | #endif | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/gdt.h | 81 | COMMENT | |
| LOW | crates/optix/examples/common/gdt/gdt/math/box.h | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/vec.h | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/AffineSpace.h | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/AffineSpace.h | 21 | // // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/AffineSpace.h | 141 | // const vec_t<S,3,A> p4(b.upper.x,b.lower.y,b.lower.z); dst.extend(xfmPoint(m,p4)); | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/LinearSpace.h | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/LinearSpace.h | 21 | // // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/Quaternion.h | 1 | // ======================================================================== // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/Quaternion.h | 21 | // // | COMMENT |
| LOW | crates/optix/examples/common/gdt/gdt/math/constants.h | 1 | // ======================================================================== // | COMMENT |
| 622 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/blastoff/src/context.rs | 20 | /// with at least the same number of mantissa and exponent bits as requested. Will | COMMENT |
| HIGH | crates/optix/src/context.rs | 242 | /// * 3 - warning: Hints that OptiX might not behave exactly as requested by the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/rustc_codegen_nvvm/src/intrinsic.rs | 747 | // targets that support it we can typically leverage inline assembly to do | COMMENT |
| MEDIUM | crates/cudnn/src/lib.rs | 64 | //! original cuDNN enumerated data types and instead opted to leverage Rust's generics. In | COMMENT |
| MEDIUM | crates/cudnn/src/math_type.rs | 12 | /// down conversion on tensors in order to utilize Tensor Cores. | COMMENT |
| MEDIUM | crates/cudnn/src/math_type.rs | 15 | /// conversion on tensors in order to utilize Tensor Cores. | COMMENT |