Module Sarek_cuda.Cuda_plugin

module Cuda_base : sig ... end

Reuse the existing CUDA implementation

Extend Framework_sig.kargs with CUDA-specific variant

type cuda_intrinsic = {
  1. intr_name : string;
  2. intr_codegen : string;
  3. intr_convergence : Spoc_framework.Framework_sig.convergence;
}

CUDA-specific intrinsic implementation

Intrinsic registry for CUDA-specific intrinsics

CUDA Backend - implements BACKEND

val is_disabled : unit -> bool

Check if backend is disabled via environment variable. Checked at runtime to allow SPOC_DISABLE_* to work without rebuild.

val registered_backend : unit lazy_t

Backend registration - happens once when first needed

val init : unit -> unit

Force module initialization

Additional CUDA-specific Functions

val register_intrinsic : string -> Cuda_intrinsics.intrinsic_impl -> unit

Register a custom CUDA intrinsic

val find_intrinsic : string -> Cuda_intrinsics.intrinsic_impl option

Look up a CUDA intrinsic

val generate_with_types : types:(string * (string * Sarek_ir_types.elttype) list) list -> Sarek_ir_types.kernel -> string

Generate CUDA source with custom types

val generate_source : Sarek_ir_types.kernel -> string

Generate CUDA source for a kernel