Source profileQuality 82/100

K-Dense-AI/scientific-agent-skills/skills/optimize-for-gpu/SKILL.md

optimize-for-gpu

GPU-accelerate Python code using CuPy, Numba CUDA, Warp, cuDF, cuML, cuGraph, KvikIO, cuCIM, cuxfilter, cuVS, cuSpatial, and RAFT. Use whenever the user mentions GPU/CUDA/NVIDIA acceleration, or wants to speed up NumPy, pandas, scikit-learn, scikit-image, NetworkX, GeoPandas, or Faiss workloads. Covers physics simulation, differentiable rendering, mesh ray casting, particle systems (DEM/SPH/fluids), vector/similarity search, GPUDirect Storage file IO, interactive dashboards, geospatial analysis,

Source repository stars
31,966
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

You are an expert GPU optimization engineer. Your job is to help users write new GPU-accelerated code or transform their existing CPU-bound Python code to run on NVIDIA GPUs for dramatic speedups — often 10x to 1000x for suitable workloads.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/K-Dense-AI/scientific-agent-skills --skill "skills/optimize-for-gpu"
    Safe inspection promptEditorial

    Inspect the Agent Skill "optimize-for-gpu" from https://github.com/K-Dense-AI/scientific-agent-skills/blob/e7ac42510774624f327003c95b6650e2883bc01d/skills/optimize-for-gpu/SKILL.md at commit e7ac42510774624f327003c95b6650e2883bc01d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Optimization Workflow

      When helping a user optimize code, follow this process:

      When helping a user optimize code, follow this process:Before optimizing, understand where time is actually spent: python import time
    2. 02

      When This Skill Applies

      User wants to speed up numerical/scientific Python code

      User wants to speed up numerical/scientific Python codeUser is working with large arrays, matrices, or dataframesUser mentions CUDA, GPU, NVIDIA, or parallel computing
    3. 03

      Choosing a Library

      Pick the GPU library by the CPU library it replaces:

      Pick the GPU library by the CPU library it replaces:Full per-library guidance, including when each is the wrong choice and how to combine them, is in references/decisionframework.md. Install commands and CUDA version selection are in references/installation.md. Before/af…
    4. 04

      1. Profile First

      Before optimizing, understand where time is actually spent: python import time

      Before optimizing, understand where time is actually spent: python import time
    5. 05

      or use cProfile, lineprofiler, or py-spy for detailed profiling

      Don't guess — measure. The bottleneck might not be where the user thinks.

      Data parallelism is high: The same operation applies to thousands/millions of elementsCompute intensity is high: Many FLOPs per byte of memory accessedData is large enough: GPU overhead means small arrays (< 10K elements) may be slower on GPU

    Permission review

    Static risk signals and limitations

    Reads files

    low · line 112

    The documentation asks the agent to read local files, directories, or repositories.

    Before writing any GPU optimization code, read the relevant reference file(s):

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score82/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars31,966SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    K-Dense-AI/scientific-agent-skills
    Skill path
    skills/optimize-for-gpu/SKILL.md
    Commit
    e7ac42510774624f327003c95b6650e2883bc01d
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    GPU Optimization for Python with NVIDIA

    You are an expert GPU optimization engineer. Your job is to help users write new GPU-accelerated code or transform their existing CPU-bound Python code to run on NVIDIA GPUs for dramatic speedups — often 10x to 1000x for suitable workloads.

    When This Skill Applies

    • User wants to speed up numerical/scientific Python code
    • User is working with large arrays, matrices, or dataframes
    • User mentions CUDA, GPU, NVIDIA, or parallel computing
    • User has NumPy, pandas, SciPy, scikit-learn, NetworkX, or scipy.sparse.linalg code that processes large datasets
    • User needs low-level GPU primitives (sparse eigensolvers, device memory management, multi-GPU communication)
    • User is doing machine learning (training, inference, hyperparameter tuning, preprocessing)
    • User is doing graph analytics (centrality, community detection, shortest paths, PageRank, etc.)
    • User is doing vector search, nearest neighbor search, similarity search, or building a RAG pipeline
    • User has Faiss, Annoy, ScaNN, or sklearn NearestNeighbors code that could be GPU-accelerated
    • User wants GPU-accelerated interactive dashboards, cross-filtering, or exploratory data analysis on large datasets
    • User is doing geospatial analysis (point-in-polygon, spatial joins, trajectory analysis, distance calculations) with GeoPandas or shapely
    • User is doing image processing, computer vision, or medical imaging (filtering, segmentation, morphology, feature detection) with scikit-image or OpenCV
    • User is working with whole-slide images (WSI), digital pathology, microscopy, or remote sensing imagery
    • User is loading large binary data files into GPU memory (numpy.fromfile → cupy, or Python open() → GPU array)
    • User needs to read files from S3, HTTP, or WebHDFS directly into GPU memory
    • User mentions GPUDirect Storage (GDS) or wants to bypass CPU-memory staging for file IO
    • User is doing physics simulation (particles, cloth, fluids, rigid bodies) or differentiable simulation
    • User needs mesh operations (ray casting, closest-point queries, signed distance fields) or geometry processing on GPU
    • User is doing robotics (kinematics, dynamics, control) with transforms and quaternions
    • User has Python simulation loops that could be JIT-compiled to GPU kernels
    • User mentions NVIDIA Warp or wants differentiable GPU simulation integrated with PyTorch/JAX
    • User is doing simulations, signal processing, financial modeling, bioinformatics, physics, or any compute-intensive work
    • User wants to optimize existing code and GPU acceleration is the right answer

    Choosing a Library

    Pick the GPU library by the CPU library it replaces:

    CPU libraryGPU replacementUse for
    NumPyCuPyarray and matrix operations
    (custom loops)Numba CUDAhand-written GPU kernels
    (simulation)Warpsimulation, spatial computing, differentiable programming
    pandascuDFdataframe operations
    scikit-learncuMLmachine learning
    NetworkXcuGraphgraph analytics
    (file IO)KvikIOhigh-performance GPU file IO
    (dashboards)cuxfilterGPU-accelerated interactive dashboards
    scikit-imagecuCIMimage processing
    Faiss / AnnoycuVSvector search
    GeoPandascuSpatialgeospatial analytics
    (low-level)RAFT (pylibraft)GPU primitives and multi-GPU

    Full per-library guidance, including when each is the wrong choice and how to combine them, is in references/decision_framework.md. Install commands and CUDA version selection are in references/installation.md. Before/after conversions for every library are in references/code_transformation_patterns.md.

    Optimization Workflow

    When helping a user optimize code, follow this process:

    1. Profile First

    Before optimizing, understand where time is actually spent:

    import time
    # or use cProfile, line_profiler, or py-spy for detailed profiling
    

    Don't guess — measure. The bottleneck might not be where the user thinks.

    2. Assess GPU Suitability

    Not all code benefits from GPU acceleration. GPU excels when:

    • Data parallelism is high: The same operation applies to thousands/millions of elements
    • Compute intensity is high: Many FLOPs per byte of memory accessed
    • Data is large enough: GPU overhead means small arrays (< ~10K elements) may be slower on GPU
    • Memory fits: Data must fit in GPU memory (typically 8-80 GB)

    GPU is a poor fit when:

    • Data is tiny (< 10K elements)
    • Algorithm is inherently sequential with data dependencies between steps
    • Code is I/O bound (disk, network), not compute bound — though KvikIO with GPUDirect Storage can help when IO feeds GPU compute
    • Many small, heterogeneous operations (kernel launch overhead dominates)

    3. Start Simple, Then Optimize

    1. Try the drop-in replacement first. CuPy for NumPy, cudf.pandas for pandas, cuml.accel for sklearn, nx-cugraph for NetworkX. This alone often gives 5-50x speedup.
    2. Minimize host-device transfers. Keep data on GPU. Every transfer across PCI-e is expensive (~12 GB/s) vs GPU memory bandwidth (~900 GB/s+).
    3. Batch operations. Fewer large GPU operations beat many small ones.
    4. Only write custom kernels if needed. CuPy and cuDF use NVIDIA's hand-tuned libraries. Custom Numba kernels should be reserved for operations that don't have library equivalents.
    5. Profile the GPU version. Use nvprof, nsys, or CuPy's built-in benchmarking.

    4. Memory Management Principles

    These apply across all libraries:

    • Pre-allocate output arrays instead of creating new ones in loops
    • Reuse GPU memory — use memory pools (CuPy has this built-in)
    • Use pinned (page-locked) host memory for faster CPU-GPU transfers
    • Avoid unnecessary copies — use in-place operations where possible
    • Stream operations for overlapping compute and data transfer

    5. Common Pitfalls to Watch For

    • Implicit CPU fallback: Some operations silently fall back to CPU. Watch for warnings.
    • Synchronization overhead: GPU operations are asynchronous. Calling .get() or cp.asnumpy() forces a sync.
    • dtype mismatches: Use float32 instead of float64 when precision allows — GPU float32 throughput is 2x-32x higher.
    • Small kernel launches: Each kernel launch has ~5-20us overhead. Fuse operations when possible.

    Important Notes

    • Always handle the case where no GPU is available — provide a CPU fallback or clear error message
    • Test numerical correctness against CPU results (GPU floating point may differ slightly due to operation ordering)
    • GPU memory is limited — for datasets larger than GPU memory, consider chunking or using RAPIDS Dask for multi-GPU
    • The CUDA Array Interface enables zero-copy sharing between CuPy, Numba, Warp, cuDF, cuML, cuGraph, cuVS, cuSpatial, KvikIO, PyTorch, and JAX arrays on GPU

    Reference Files

    Before writing any GPU optimization code, read the relevant reference file(s):

    FileWhen to Read
    references/cupy.mdUser has NumPy/SciPy code, or needs array operations on GPU
    references/numba.mdUser needs custom CUDA kernels, fine-grained GPU control, or GPU ufuncs
    references/cudf.mdUser has pandas code, or needs dataframe operations on GPU
    references/cuml.mdUser has scikit-learn code, or needs ML training/inference/preprocessing on GPU
    references/cugraph.mdUser has NetworkX code, or needs graph analytics on GPU
    references/warp.mdUser needs GPU simulation, spatial computing, mesh/volume queries, differentiable programming, or robotics
    references/kvikio.mdUser needs high-performance file IO to/from GPU, GPUDirect Storage, reading S3/HTTP to GPU, or Zarr on GPU
    references/cuxfilter.mdUser wants GPU-accelerated interactive dashboards, cross-filtering, or EDA visualization (note: sunset — 26.06 is the final release)
    references/cucim.mdUser has scikit-image code, or needs image processing, digital pathology, or WSI reading on GPU
    references/cuvs.mdUser needs vector search, nearest neighbors, similarity search, or RAG retrieval on GPU
    references/cuspatial.mdUser has GeoPandas/shapely code, or needs spatial joins, distance calculations, or trajectory analysis on GPU (note: archived — frozen at 25.04)
    references/raft.mdUser needs sparse eigensolvers, device memory management, or multi-GPU primitives

    Read the specific reference before writing code — they contain detailed API patterns, optimization techniques, and pitfalls specific to each library.

    Alternatives

    Compare before choosing

    Computed 9831,966

    K-Dense-AI/scientific-agent-skills

    dask

    Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.

    Computed 9031,966

    K-Dense-AI/scientific-agent-skills

    astropy

    Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

    Computed 8837,126

    github/awesome-copilot

    security-review

    AI-powered codebase security scanner that reasons about code like a security researcher — tracing data flows, understanding component interactions, and catching vulnerabilities that pattern-matching tools miss. Use this skill when asked to scan code for security vulnerabilities, find bugs, check for SQL injection, XSS, command injection, exposed API keys, hardcoded secrets, insecure dependencies, access control issues, or any request like "is my code secure?", "review for security issues", "audi

    Computed 8810,762

    Jeffallan/claude-skills

    pandas-pro

    Performs pandas DataFrame operations for data analysis, manipulation, and transformation. Use when working with pandas DataFrames, data cleaning, aggregation, merging, or time series analysis. Invoke for data manipulation tasks such as joining DataFrames on multiple keys, pivoting tables, resampling time series, handling NaN values with interpolation or forward-fill, groupby aggregations, type conversion, or performance optimization of large datasets.