sov-kernel-monster / rtx /include /rowm_cuda_validation.h
SNAPKITTYWEST's picture
chore: push full sov-kernel-monster content from local build
9425aed verified
Raw
History Blame Contribute Delete
3.28 kB
#pragma once
#include "sov_rtx.h"
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define SOV_CUDA_VALIDATION_SCHEMA_VERSION 1u
#define SOV_CUDA_KERNEL_ABI_VERSION 1u
#define SOV_CUDA_KV_LAYOUT_VERSION 1u
#define SOV_ROWM_CUDA_COMMIT_VERSION 1u
enum {
SOV_CUDA_VALIDATION_JIT_ACCEPTED = 1u << 0,
SOV_CUDA_VALIDATION_SYMBOLS_RESOLVED = 1u << 1,
SOV_CUDA_VALIDATION_POWER_BOUND = 1u << 2,
SOV_CUDA_VALIDATION_JANET_CONFIGURED = 1u << 3,
SOV_CUDA_VALIDATION_TENSOR_GEMM_READY = 1u << 4,
SOV_CUDA_VALIDATION_SCALAR_GEMM_READY = 1u << 5,
SOV_CUDA_VALIDATION_KV_LAYOUT_CHECKED = 1u << 6,
SOV_CUDA_VALIDATION_KNOWN_ANSWER_TEST = 1u << 7
};
#define SOV_CUDA_VALIDATION_REQUIRED_FLAGS \
(SOV_CUDA_VALIDATION_JIT_ACCEPTED \
| SOV_CUDA_VALIDATION_SYMBOLS_RESOLVED \
| SOV_CUDA_VALIDATION_POWER_BOUND \
| SOV_CUDA_VALIDATION_JANET_CONFIGURED \
| SOV_CUDA_VALIDATION_TENSOR_GEMM_READY \
| SOV_CUDA_VALIDATION_SCALAR_GEMM_READY \
| SOV_CUDA_VALIDATION_KV_LAYOUT_CHECKED)
enum {
SOV_CUDA_ROWM_OK = 0,
SOV_CUDA_ROWM_INVALID_ARGUMENT = -1001,
SOV_CUDA_ROWM_UNBOUND = -1002,
SOV_CUDA_ROWM_BIND_CONFLICT = -1003,
SOV_CUDA_ROWM_COMMIT_FAILED = -1004,
SOV_CUDA_ROWM_INVALID_PROOF = -1005,
SOV_CUDA_ROWM_UNAUTHORIZED = -1006,
SOV_CUDA_ROWM_STALE_CONTEXT = -1007,
SOV_CUDA_ROWM_EVIDENCE_MISMATCH = -1008
};
typedef struct {
const uint8_t* bytes;
size_t size;
} sov_cuda_validation_bytes_t;
typedef struct {
uint32_t schema_version;
uint32_t backend_id;
uint32_t driver_version;
uint32_t compute_capability_major;
uint32_t compute_capability_minor;
uint32_t ptx_target;
uint32_t kernel_abi_version;
uint32_t scalar_storage_bits;
uint32_t accumulator_storage_bits;
uint32_t kv_layout_version;
uint32_t validation_result;
uint32_t validation_flags;
uint64_t resolved_kernel_mask;
uint64_t cuda_context_generation;
uint8_t device_uuid[16];
sov_cuda_validation_bytes_t flash_ptx;
sov_cuda_validation_bytes_t gemm_ptx;
} sov_cuda_validation_evidence_t;
typedef struct {
uint32_t version;
uint32_t reserved;
uint64_t validation_epoch;
uint8_t record_id[32];
uint8_t committed_rowm_root[32];
uint8_t embedded_worm_receipt_hash[32];
} sov_rowm_cuda_validation_commit_t;
typedef int (*sov_rowm_commit_cuda_validation_fn)(
void* rowm_context,
const sov_cuda_validation_evidence_t* evidence,
sov_rowm_cuda_validation_commit_t* commit_out);
int sov_cuda_validation_bind_rowm(
sov_rowm_commit_cuda_validation_fn commit_fn,
void* rowm_context);
int sov_cuda_validation_commit_rowm(
const sov_cuda_validation_evidence_t* evidence);
int sov_cuda_validation_require_authorized(uint64_t cuda_context_generation);
int sov_cuda_validation_get_commit(sov_rowm_cuda_validation_commit_t* commit_out);
void sov_cuda_validation_clear(void);
#ifdef __cplusplus
}
#endif