char-fork/llama.cpp

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

Diego Devesaggml : fix fallback to CPU for ununsupported ops (#15118)0d8831543

char/aliceai-t5-moe
1.1 KiB38 linesraw
1#pragma once
2#include "ggml-backend-impl.h"
3#include "ggml-cpu-impl.h"
4#include "ggml.h"
5
6#ifdef __cplusplus
7#    include <vector>
8extern "C" {
9#endif
10
11// return true if op part of extra "accelerator"
12bool ggml_cpu_extra_compute_forward(struct ggml_compute_params * params, struct ggml_tensor * op);
13bool ggml_cpu_extra_work_size(int n_threads, const struct ggml_tensor * op, size_t * size);
14
15#ifdef __cplusplus
16}
17
18namespace ggml::cpu {
19// register in tensor->extra
20class tensor_traits {
21  public:
22    virtual ~tensor_traits();
23    virtual bool work_size(int n_threads, const struct ggml_tensor * op, size_t & size)        = 0;
24    virtual bool compute_forward(struct ggml_compute_params * params, struct ggml_tensor * op) = 0;
25};
26
27class extra_buffer_type {
28  public:
29    virtual ~extra_buffer_type();
30    virtual bool            supports_op(ggml_backend_dev_t dev, const struct ggml_tensor * op) = 0;
31    virtual tensor_traits * get_tensor_traits(const struct ggml_tensor * op)                   = 0;
32};
33}  // namespace ggml::cpu
34
35// implemented in ggml-cpu.cpp.
36std::vector<ggml_backend_buffer_type_t> & ggml_backend_cpu_get_extra_buffer_types();
37
38#endif