Sarek_opencl.Opencl_pluginmodule Opencl_base : sig ... endReuse the existing OpenCL implementation
Extend Framework_sig.kargs with OpenCL-specific variant
type opencl_intrinsic = {intr_name : string;intr_codegen : string;intr_convergence : Spoc_framework.Framework_sig.convergence;}OpenCL-specific intrinsic implementation
Intrinsic registry for OpenCL-specific intrinsics
OpenCL Backend - implements BACKEND
Check if backend is disabled via environment variable. Checked at runtime to allow SPOC_DISABLE_* to work without rebuild.
val register_intrinsic : string -> Opencl_intrinsics.intrinsic_impl -> unitRegister a custom OpenCL intrinsic
val find_intrinsic : string -> Opencl_intrinsics.intrinsic_impl optionLook up an OpenCL intrinsic
val generate_with_types :
types:(string * (string * Sarek_ir_types.elttype) list) list ->
Sarek_ir_types.kernel ->
stringGenerate OpenCL source with custom types
val generate_source : Sarek_ir_types.kernel -> stringGenerate OpenCL source for a kernel
val generate_with_fp64 : Sarek_ir_types.kernel -> stringGenerate OpenCL source with FP64 extension if needed