/** * ruRE Phase 5 — a cubin (ADR-0006): an ELF64 for the GPU (`e_machine` 190). Read here for its kernels, from the symbol table, which * `parseBinary` does not read. Layout checked against `cuobjdump -symbols` and `-res-usage` on real nvcc output. Bounds-checked * throughout; never throws on hostile input (a failure is a warning and what was read stays). */ export declare const EM_CUDA = 190; export declare const MAX_KERNELS = 500; export interface CubinKernel { /** The mangled name as in the symbol table. */ name: string; /** The plain identifier of a simple `_Z...` name, else null: full demangling is not attempted. */ identifier: string | null; /** A kernel (launchable, `STO_CUDA_ENTRY`) or a device function (callable from the GPU only). */ isEntry: boolean; codeBytes: number | null; /** codeBytes / 16, for SM 7.0 and later (a SASS instruction is 16 bytes there); null otherwise. An estimate, not a decode. */ instructionEstimate: number | null; /** The register count from the global .nv.info section (EIATTR_REGCOUNT: a symbol index and a count); null when no record names this symbol. */ registers: number | null; constantBytes: number | null; sharedBytes: number | null; localBytes: number | null; } export interface CubinInfo { /** SM number from `e_flags` (80 for sm_80), or null. */ archFlag: number | null; sectionCount: number; kernels: CubinKernel[]; warnings: string[]; truncated: boolean; } /** * The SM number in `e_flags`. Where it sits depends on the ABI the toolchain wrote: a cubin from CUDA 12 (ELF OS ABI 51) for sm_70 to sm_90 keeps it in the * low byte (sm_70 is 0x460546: 0x46 twice, around the texture and address bits), while CUDA 13, and CUDA 12.8 for sm_120, use OS ABI 65 and the second byte * (sm_80 is 0x06005004). Reading the second byte of an ABI 51 cubin gave "sm_5" for every one of them. An OS ABI we have not seen falls back to whichever * byte is a plausible SM number. */ export declare function smOfFlags(flags: number, osAbi: number): number | null; export declare const isCubin: (b: Buffer) => boolean; /** `_Z5saxpyifPKfPf` -> `saxpy`; anything with a namespace, template or other prefix -> null. */ export declare function simpleIdentifier(name: string): string | null; export declare function parseCubin(b: Buffer): CubinInfo; //# sourceMappingURL=cuda-cubin.d.ts.map