char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Martin Changggml-et: Initial ET backend (#24179)082b326fc

char/aliceai-t5-moe
2.3 KiB48 linesraw
1#pragma once
2
3#include "ggml-et-common.h"
4
5#include <string>
6#include <utility>
7#include <vector>
8
9#define ET_TRACE_BUFFER_SIZE (1024 * 1024 * 8UL)
10
11// Load kernel from file or embedded data and store handle in device context
12// Returns true on success, false on failure
13//
14// Loading strategy:
15// - If GGML_ET_KERNELS_PATH env var is set: tries to load from ${GGML_ET_KERNELS_PATH}/${kernel_name}.elf
16// - If file not found or env var not set: falls back to embedded kernel data
17// - Returns false if kernel cannot be loaded from either source
18//
19// Kernel is loaded using the device's default stream
20bool ggml_et_load_kernel(ggml_backend_et_device_context * dev_ctx, const std::string & kernel_name);
21
22// Launch kernel with parameters on device's default stream
23// Performs lazy loading: automatically loads kernel if not already loaded
24// Kernel path: ${GGML_ET_KERNELS_PATH}/${kernel_name}.elf (default: /opt/et/ggml/kernels/)
25// Returns true on success, false on failure
26// Execution is synchronous - waits for completion
27bool ggml_et_launch_kernel(ggml_backend_et_device_context * dev_ctx,
28                           const std::string &              kernel_name,
29                           void *                           params,
30                           size_t                           params_size,
31                           uint64_t                         shire_mask       = 0xFFFFFFFF,
32                           bool                             enable_print     = false,
33                           bool                             sync_error_check = false);
34
35void ggml_et_uberkernel_begin_graph(ggml_backend_et_uberkernel_context * uk_ctx);
36bool ggml_et_uberkernel_end_graph(ggml_backend_et_device_context * dev_ctx);
37void ggml_et_uberkernel_abort_graph(ggml_backend_et_uberkernel_context * uk_ctx);
38bool ggml_et_uberkernel_failed(const ggml_backend_et_uberkernel_context * uk_ctx);
39
40// Unload kernel from device and free resources
41// Safe to call even if kernel not loaded
42void ggml_et_unload_kernel(ggml_backend_et_device_context * dev_ctx, const std::string & kernel_name);
43
44// Unload all kernels from device context
45// Called during device cleanup
46void ggml_et_unload_all_kernels(ggml_backend_et_device_context * dev_ctx);
47
48std::vector<std::pair<std::string, rt::KernelId>> ggml_et_get_loaded_kernels(ggml_backend_et_device_context * dev_ctx);