import { type DType } from '../dtype.ts'; import { Ops, PatternMatcher, UOp } from '../ops.ts'; import { Renderer, TensorCore } from './index.ts'; export declare const base_rewrite: PatternMatcher; export declare const extra_pm: PatternMatcher; export declare const uops_to_dtypes: (uops: UOp[]) => DType[]; export type Buf = { name: string; dtype: DType; mutable: boolean; }; export type RenderKernelArgs = { function_name: string; kernel: string[]; bufs: Map; uops: UOp[]; prefix?: string[]; }; export declare class CStyleLanguage extends Renderer { kernel_prefix: string; buffer_prefix: string; buffer_suffix: string; smem_align: string; smem_prefix: string; smem_prefix_for_cast: boolean; arg_int_prefix: string; barrier: string; code_for_workitem: Record string>; extra_args: string[]; float4?: string; type_map: Map; get_dtype: (dtype: DType) => string; infinity: string; nan: string; r?: Map; code_for_op: Map, (...a: (string | DType)[]) => string>; string_rewrite: PatternMatcher; extra_matcher: PatternMatcher; get_kernel_modifier(uops: UOp[]): string; render_kernel({ bufs, function_name, kernel, uops, prefix }: RenderKernelArgs): string; render_cast: (dt: DType, val: string) => string; render_dtype: (dt: DType, mutable?: boolean) => string; bufs?: Map; get: (key: UOp) => string | undefined; render: (name: string, uops: UOp[]) => string; } export declare class ClangRenderer extends CStyleLanguage { device: string; float4: string; has_local: boolean; global_max: undefined; infinity: string; nan: string; type_map: Map; buffer_suffix: string; code_for_op: Map, (...args: (string | DType)[]) => string>; extra_matcher: PatternMatcher; tensor_cores: TensorCore[] | undefined; render_vector_prefix: (dt: DType) => string; render_kernel: ({ bufs, function_name, kernel, uops, prefix }: RenderKernelArgs) => string; } export declare class OpenCLRenderer extends CStyleLanguage { device: string; kernel_prefix: string; buffer_prefix: string; smem_align: string; smem_prefix: string; barrier: string; float4: string; code_for_workitem: Record string>; type_map: Map; string_rewrite: PatternMatcher; render_kernel({ function_name, kernel, bufs, uops, prefix }: RenderKernelArgs): string; } export declare class IntelRenderer extends OpenCLRenderer { device: string; suffix: string; kernel_prefix: string; tensor_cores: TensorCore[]; string_rewrite: PatternMatcher; render_kernel({ function_name, kernel, bufs, uops, prefix }: RenderKernelArgs): string; } export declare class MetalRenderer extends CStyleLanguage { device: string; shared_max: number; tensor_cores: TensorCore[]; kernel_prefix: string; buffer_prefix: string; smem_prefix: string; arg_int_prefix: string; barrier: string; float4: string; code_for_workitem: Record string>; extra_args: string[]; type_map: Map; code_for_op: Map, (...args: (string | DType)[]) => string>; extra_matcher: PatternMatcher; string_rewrite: PatternMatcher; render_kernel({ function_name, kernel, bufs, uops, prefix }: RenderKernelArgs): string; } export declare class CUDARenderer extends CStyleLanguage { arch: string; device: string; global_max: [number, number, number]; local_max: number[]; shared_max: number; static tc_81616: TensorCore[]; static tc_8168_f16: TensorCore[]; static tc_8168_tf32: TensorCore[]; static tc_sm80: TensorCore[]; static tc_sm75: TensorCore[]; constructor(arch: string); kernel_prefix: string; smem_prefix: string; smem_prefix_for_cast: boolean; barrier: string; float4: string; code_for_workitem: Record string>; code_for_op: Map, (...args: any[]) => string>; type_map: Map; render_vector_prefix(dt: DType): string; render_kernel({ function_name, kernel, bufs, uops, prefix }: RenderKernelArgs): string; get_kernel_modifier(uops: UOp[]): string; } export declare const cast_float_to_bf16: (x: UOp) => UOp; export declare class AMDRenderer extends CStyleLanguage { device: string; shared_max: number; tensor_cores: TensorCore[]; static ockl: string[][]; static ocml: (string | number)[][]; kernel_prefix: string; code_for_workitem: Record string>; code_for_op: Map, (...args: any[]) => string>; smem_prefix: string; barrier: string; float4: string; type_map: Map; extra_matcher: PatternMatcher; render_vector_prefix(dtype: DType): string; render_kernel({ function_name, kernel, bufs, uops, prefix }: RenderKernelArgs): string; get_kernel_modifier(uops: UOp[]): string; } export declare class NVRenderer extends CUDARenderer { device: string; } export declare class HIPRenderer extends AMDRenderer { device: string; } export declare class QCOMRenderer extends OpenCLRenderer { device: string; }