Skip to content
tilegym-converting-cutile-to-julia logo

cuTile Python → cuTile.jl (Julia) Conversion

tilegym-converting-cutile-to-julia

Converts cuTile Python GPU kernels (@ct.kernel) to cuTile.jl Julia equivalents. Handles kernel syntax translation, 0-indexed to 1-indexed conversion, broadcasting differences, memory layout (row-major to column-major), type system mapping, and launch API differences. Use when converting, porting, or translating cuTile Python kernels to Julia cuTile.jl, or debugging/optimizing existing Julia cuTile translations.

nvidia/skills1.5Kinstalls3.5Kstars

SKILL.md

Full skill instructions

cuTile Python → cuTile.jl (Julia) Conversion

Convert @ct.kernel Python kernels to Julia function ... end cuTile.jl kernels.

Workflow Selection

Architecture

Julia kernels are standalone — no Python bridge, no pytest integration. The Julia sub-project lives in julia/ at the repo root with its own Project.toml for dependency management.

julia/                          # Self-contained Julia sub-project
├── Project.toml                # Dependencies: CUDA.jl, cuTile.jl, NNlib.jl, Test
├── kernels/                    # cuTile.jl kernel implementations
│   ├── add.jl                  # ← Ground-truth: 1D element-wise with alpha scaling (tensor+tensor, tensor+scalar)
│   ├── matmul.jl               # ← Ground-truth: 2D tiled MMA, standard Julia layout (M,K)×(K,N)→(M,N)
│   └── softmax.jl              # ← Ground-truth: 3 strategies (TMA, online, chunked) using ct.load/​ct.store
└── test/                       # Julia-native tests (using Test stdlib)
    ├── runtests.jl             # Test runner entry point
    ├── test_add.jl
    ├── test_matmul.jl
    └── test_softmax.jl

Ground-truth reference: Always consult julia/​kernels/​*.jl and julia/​test/​*.jl for patterns that compile and pass tests. These are the canonical examples of working cuTile.jl code.

Instructions

  1. Analyze the Python kernel: identify patterns, shapes, dtypes, operations
  2. Write Julia kernel — julia/​kernels/<op>.jl with cuTile.jl kernel + bridge function(s)
  3. Convert kernel signature (see translations/​workflow.md Phase 2)
  4. Convert kernel body (apply references/​api-mapping.md + references/​critical-rules.md)
  5. Write Julia test — julia/​test/​test_<op>.jl using Test stdlib + NNlib.jl for reference
  6. Register test — add include(...) in julia/​test/​runtests.jl
  7. Validate — run the bundled validator: python <skill-dir>/​scripts/​validate_cutile_jl.py <file.jl>
  8. Test — run julia --project=julia/ julia/​test/​runtests.jl

Full conversion checklist with post-conversion verification → translations/​workflow.md

⚠️ Top Pitfalls

The most dangerous translation errors. Full rules (17 total) in references/​critical-rules.md.

#PitfallOne-line fix
1ct.full() doesn't exist in JuliaUse fill(val, shape), zeros(T, dims...), or ones(T, dims...)
2max(a, b) on tiles → IRErrorUse max.(a, b) (broadcast dot)
3IRError / MethodError mentioning IRStructurizerCompiler bug — file upstream with minimal reproducer
4ct.launch arg order silently wrongArgs are positional — match kernel signature exactly
5ct.load with order — index positions wrongorder remaps BOTH shape AND index (Critical Rule 16)

Worked Examples

Side-by-side Python → Julia conversions matching the released Julia kernels in julia/​kernels/. Each directory contains cutile_python.py (before) and cutile_julia.jl (after).

#ExampleKey PatternsWhen to Reference
01add1D ct.load/ct.store, alpha scaling, scalar broadcast, fill/zeros, keyword load/​storeStarting point; basic TMA + element-wise patterns
02matmulmuladd, TF32 conversion, K-loop with for, 2D swizzle, standard Julia layout, ct.@compiler_optionsMMA / tensor core operations
03softmaxPersistent scheduling, for loops, gather/scatter, padding_mode, multi-passLarge-tensor reduction patterns

These match the released kernels in julia/​kernels/ (add.jl, matmul.jl, softmax.jl). The examples are simplified teaching versions — always consult julia/​kernels/​*.jl for the canonical, tested implementations.

Reference Documents

CategoryDocumentContent
Workflowstranslations/​workflow.mdFull conversion workflow with todo list, validation loop, checklist
Rulesreferences/​critical-rules.md17 Critical Rules for cuTile Python → Julia conversion
APIreferences/​api-mapping.mdPython↔Julia bidirectional API mapping + kernel patterns
Testingreferences/​testing.mdJulia-native test patterns, tolerances, failure diagnosis
Debuggingreferences/​debugging.mdJulia-specific error diagnosis + IR debug commands
Scriptsscripts/​validate_cutile_jl.pyStatic validation for Julia anti-patterns (run it)
Ground Truthjulia/​kernels/​*.jl + julia/​test/​*.jlActual working implementations in the codebase

Environment Setup

Prerequisite — Julia: this skill requires the Julia version declared in julia/​Project.toml under [compat] julia. If julia --version is missing or older than that, install from the official Julia site at https://julialang.org/install/ following the verified installer instructions for your OS. Resume below once julia --version is compatible.

Then, from the repo root:

# Install Julia dependencies declared in julia/​Project.toml
julia --project=julia/ -e 'using Pkg; Pkg.instantiate()'

# Run tests
julia --project=julia/ julia/​test/​runtests.jl

Requirements:

  • Julia (minimum version declared in julia/​Project.toml under [compat] julia)
  • CUDA 13.1+ driver
  • Blackwell GPU (compute capability 10+)
  • Dependencies managed via julia/​Project.toml: CUDA.jl, cuTile.jl, NNlib.jl, Test

More skills from nvidia

cudaq-guide logo
nvidia/skills

cudaq-guide

CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.

3.5K 2.5K
View
data-designer logo
nvidia/skills

data-designer

Use when the user wants to create a dataset, generate synthetic data, or build a data generation pipeline.

3.5K 2.4K
View
deepstream-dev logo
nvidia/skills

deepstream-dev

NVIDIA DeepStream SDK development with Python pyservicemaker API. Use when building video analytics pipelines, GStreamer-based video processing, TensorRT inference integration, object detection/tracking, or Kafka/message broker integration.

3.5K 2.4K
View
rag-eval logo
nvidia/skills

rag-eval

Filesystem RAG benchmarks: corpus/, train.json, evaluate_rag.py (RAGAS quality). Not for prod monitoring, latency/throughput benchmarking (use rag-perf), or evals outside this repo layout.

3.5K 2.3K
View
nemo-retriever logo
nvidia/skills

nemo-retriever

Use when the user wants to search, query, extract, transcribe, describe, quote, filter, or aggregate across documents — PDFs, scanned forms / images (`.jpg` `.png` `.tiff`), Office (`.docx` `.pptx`), text (`.html` `.txt`), audio (`.mp3` `.wav` `.m4a`), or video (`.mp4` `.mov`). Prefer this over native Read / Grep for multi-file or non-PDF corpora. Not for: editing files, web browsing, single-file plain-text lookups, fine-tuning.

3.5K 2.3K
View

Coordinate the end-to-end CAD/source-asset to SimReady workflow. Use for broad requests such as CAD to SimReady, source asset to simulation-ready USD, or prop packaging that require conversion, material/physics assignment, SimReady conformance, validation, and optional package creation; deploy or verify Content Agents services first when property assignment is enabled; route single-stage work through nested references.

3.5K 2.3K
View

Use this skill to bring any vision model from HuggingFace or NVIDIA NGC into an NVIDIA DeepStream pipeline with end-to-end automation: ONNX download, SafeTensors export, TRT engine build, custom nvinfer bbox parser, multi-stream benchmark, and PDF report. Object detection models only.

3.5K 2.3K
View

Top-level workflow skill for USD performance diagnosis and optimization. Handles slow loading, high memory, low FPS, and broad scene-optimization requests; delegates auth/runtime setup to Phase 0 owners.

3.5K 2.3K
View

Vehicle routing (VRP, TSP, PDP) with cuOpt — Python API only. Use when the user is building or solving routing in Python.

3.5K 2.2K
View

Use only to generate or update a governance skill card for a specified existing agent skill directory. Do not use for explaining, listing, comparing, or discussing skill capabilities.

3.5K 2.2K
View

Use as the top-level router for Omniverse Realtime Viewer USD app requests and focused viewer reference documents.

3.5K 2.2K
View
rag-perf logo
nvidia/skills

rag-perf

Performance benchmarking for a deployed NVIDIA RAG Blueprint server: profiling pass + aiperf load test driven by a single YAML config. Not for accuracy / RAGAS scoring (use rag-eval) or for deploying / repairing services (use rag-blueprint).

3.5K 2.1K
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View