fix build error
This commit is contained in:
parent
ffabe95e2a
commit
4c905b2b25
|
|
@ -14,37 +14,29 @@ extern "C" {
|
|||
#define GGML_OPENVINO_MAX_DEVICES 16
|
||||
|
||||
// backend API
|
||||
GGML_API ggml_backend_t ggml_backend_openvino_init(int device);
|
||||
GGML_BACKEND_API ggml_backend_t ggml_backend_openvino_init(int device);
|
||||
|
||||
GGML_API bool ggml_backend_is_openvino(ggml_backend_t backend);
|
||||
GGML_BACKEND_API bool ggml_backend_is_openvino(ggml_backend_t backend);
|
||||
|
||||
// device buffer
|
||||
GGML_API ggml_backend_buffer_type_t
|
||||
ggml_backend_openvino_buffer_type(int device);
|
||||
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_buffer_type(int device);
|
||||
|
||||
// split tensor buffer that splits matrices by rows across multiple devices
|
||||
GGML_API ggml_backend_buffer_type_t
|
||||
ggml_backend_openvino_split_buffer_type(const float *tensor_split);
|
||||
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_split_buffer_type(const float * tensor_split);
|
||||
|
||||
// pinned host buffer for use with the CPU backend for faster copies between CPU
|
||||
// and GPU
|
||||
GGML_API ggml_backend_buffer_type_t
|
||||
ggml_backend_openvino_host_buffer_type(void);
|
||||
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_host_buffer_type(void);
|
||||
|
||||
GGML_API int ggml_backend_openvino_get_device_count(void);
|
||||
// GGML_API void ggml_backend_openvino_get_device_description(int device,
|
||||
// char *description,
|
||||
// size_t
|
||||
// description_size);
|
||||
// GGML_API void ggml_backend_openvino_get_device_memory(int device, size_t
|
||||
// *free,
|
||||
// size_t *total);
|
||||
GGML_BACKEND_API int ggml_backend_openvino_get_device_count(void);
|
||||
// GGML_BACKEND_API void ggml_backend_openvino_get_device_description(int device, char * description,
|
||||
// size_t description_size);
|
||||
// GGML_BACKEND_API void ggml_backend_openvino_get_device_memory(int device, size_t * free, size_t * total);
|
||||
|
||||
// GGML_API bool ggml_backend_openvino_register_host_buffer(void *buffer, size_t
|
||||
// size); GGML_API void ggml_backend_openvino_unregister_host_buffer(void
|
||||
// *buffer);
|
||||
// GGML_BACKEND_API bool ggml_backend_openvino_register_host_buffer(void * buffer, size_t size);
|
||||
// GGML_BACKEND_API void ggml_backend_openvino_unregister_host_buffer(void * buffer);
|
||||
|
||||
GGML_API ggml_backend_reg_t ggml_backend_openvino_reg(void);
|
||||
GGML_BACKEND_API ggml_backend_reg_t ggml_backend_openvino_reg(void);
|
||||
|
||||
struct ggml_openvino_device_info {
|
||||
int device_count;
|
||||
|
|
|
|||
|
|
@ -1,42 +1,19 @@
|
|||
find_package(OpenVINO REQUIRED)
|
||||
list(APPEND GGML_EXTRA_LIBS_PRIVATE openvino::runtime)
|
||||
|
||||
# Set header and libs
|
||||
file(GLOB GGML_HEADERS_OPENVINO "ggml-openvino/*.h")
|
||||
list(APPEND GGML_HEADERS_OPENVINO "../include/ggml-openvino.h")
|
||||
file(GLOB GGML_SOURCES_OPENVINO "ggml-openvino/*.cpp")
|
||||
list(APPEND GGML_SOURCES_OPENVINO "ggml-openvino.cpp")
|
||||
file(GLOB_RECURSE GGML_HEADERS_OPENVINO "*.h" "*.hpp")
|
||||
file(GLOB_RECURSE GGML_SOURCES_OPENVINO "*.cpp")
|
||||
|
||||
list(APPEND GGML_CDEF_PUBLIC GGML_USE_OPENVINO)
|
||||
ggml_add_backend_library(ggml-openvino
|
||||
${GGML_SOURCES_OPENVINO}
|
||||
${GGML_HEADERS_OPENVINO}
|
||||
)
|
||||
|
||||
if (OPENVINO_DEVICE)
|
||||
if (OPENVINO_DEVICE STREQUAL "GPU")
|
||||
add_compile_definitions(GGML_OPENVINO_GPU)
|
||||
elseif (OPENVINO_DEVICE STREQUAL "NPU")
|
||||
add_compile_definitions(GGML_OPENVINO_NPU)
|
||||
target_link_libraries(ggml-openvino PRIVATE openvino::runtime)
|
||||
|
||||
if (GGML_OPENVINO)
|
||||
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64")
|
||||
else()
|
||||
message(FATAL_ERROR "OpenVINO: OpenVINO toolkit supports x86-64 and arm64 but not ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED GGML_OV_FRONTEND)
|
||||
set(GGML_OV_FRONTEND OpenVINO_DIR)
|
||||
endif()
|
||||
add_definitions(-DGGML_OV_FRONTEND="${GGML_OV_FRONTEND}")
|
||||
|
||||
if (OpenVINO_DIR)
|
||||
if (GGML_OPENVINO)
|
||||
if (NOT UNIX)
|
||||
set(GGML_OPENVINO OFF)
|
||||
message(WARNING "OpenVINO: OpenVINO toolkit supports unix but not ${CMAKE_SYSTEM_NAME}. Turning off GGML_OPENVINO")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (GGML_OPENVINO)
|
||||
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64")
|
||||
else()
|
||||
set(GGML_OPENVINO OFF)
|
||||
message(WARNING "OpenVINO: OpenVINO toolkit supports x86-64 and arm64 but not ${CMAKE_SYSTEM_PROCESSOR}. Turning off GGML_OPENVINO")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <openvino/core/node.hpp>
|
||||
#include <openvino/core/type/float16.hpp>
|
||||
#include <openvino/op/constant.hpp>
|
||||
#include <openvino/op/parameter.hpp>
|
||||
#include <openvino/runtime/tensor.hpp>
|
||||
#include <ostream>
|
||||
#include <set>
|
||||
|
|
@ -278,8 +279,7 @@ void GgmlOvDecoder::dump_cgraph(const struct ggml_cgraph* cgraph) {
|
|||
<< std::setw(5) << node->ne[2] << ", "
|
||||
<< std::setw(5) << node->ne[3] << "] "
|
||||
<< std::left << std::setw(20) << ggml_op_name(node->op) << std::right << " "
|
||||
<< std::left << std::setw(44) << node->name << std::right
|
||||
<< ((node->flags & GGML_TENSOR_FLAG_PARAM) ? "x" : node->grad ? "g" : " ")
|
||||
<< std::left << std::setw(45) << node->name << std::right
|
||||
<< std::setw(2) << "[ "
|
||||
<< std::setw(0) << node->nb[0] << ", "
|
||||
<< std::setw(5) << node->nb[1] << ", "
|
||||
|
|
@ -486,4 +486,4 @@ const std::string& GgmlOvDecoder::get_op_type() const {
|
|||
}
|
||||
static const std::string unknown_op = "UNKNOWN_OP";
|
||||
return unknown_op;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ ggml_backend_openvino_graph_compute(ggml_backend_t backend, struct ggml_cgraph *
|
|||
static const ggml_backend_i ggml_backend_openvino_interface = {
|
||||
/* .get_name = */ ggml_backend_openvino_get_name,
|
||||
/* .free = */ ggml_backend_openvino_free,
|
||||
/* .get_default_buffer_type = */ ggml_backend_openvino_get_default_buffer_type,
|
||||
/* .set_tensor_async = */ NULL,
|
||||
/* .get_tensor_async = */ NULL,
|
||||
/* .cpy_tensor_async = */ NULL,
|
||||
|
|
@ -72,9 +71,6 @@ static const ggml_backend_i ggml_backend_openvino_interface = {
|
|||
/* .graph_plan_update = */ NULL,
|
||||
/* .graph_plan_compute = */ NULL,
|
||||
/* .graph_compute = */ ggml_backend_openvino_graph_compute,
|
||||
/* .supports_op = */ NULL,
|
||||
/* .supports_buft = */ NULL,
|
||||
/* .offload_op = */ NULL,
|
||||
/* .event_record = */ NULL,
|
||||
/* .event_wait = */ NULL,
|
||||
};
|
||||
|
|
@ -89,7 +85,7 @@ static ggml_guid_t ggml_backend_openvino_guid(void) {
|
|||
}
|
||||
|
||||
// backend API
|
||||
GGML_API ggml_backend_t ggml_backend_openvino_init(int device) {
|
||||
GGML_BACKEND_API ggml_backend_t ggml_backend_openvino_init(int device) {
|
||||
if (device < 0 || device >= ggml_backend_openvino_get_device_count()) {
|
||||
GGML_LOG_ERROR("%s: invalid device %d\n", __func__, device);
|
||||
return nullptr;
|
||||
|
|
@ -111,30 +107,28 @@ GGML_API ggml_backend_t ggml_backend_openvino_init(int device) {
|
|||
return openvino_backend;
|
||||
}
|
||||
|
||||
GGML_API bool ggml_backend_is_openvino(ggml_backend_t backend) {
|
||||
GGML_BACKEND_API bool ggml_backend_is_openvino(ggml_backend_t backend) {
|
||||
GGML_ASSERT(backend->context != nullptr);
|
||||
return true;
|
||||
}
|
||||
|
||||
// device buffer
|
||||
GGML_API ggml_backend_buffer_type_t
|
||||
ggml_backend_openvino_buffer_type(int device) {
|
||||
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_buffer_type(int device) {
|
||||
GGML_ASSERT(device >= 0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// split tensor buffer that splits matrices by rows across multiple devices
|
||||
GGML_API ggml_backend_buffer_type_t
|
||||
ggml_backend_openvino_split_buffer_type(const float *tensor_split) {
|
||||
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_split_buffer_type(const float * tensor_split) {
|
||||
GGML_ASSERT(tensor_split != nullptr);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// pinned host buffer for use with the CPU backend for faster copies between CPU
|
||||
// and GPU
|
||||
GGML_API ggml_backend_buffer_type_t
|
||||
ggml_backend_openvino_host_buffer_type(void) { return nullptr;}
|
||||
|
||||
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_openvino_host_buffer_type(void) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
struct ggml_backend_openvino_buffer_type_context {
|
||||
int device;
|
||||
|
|
@ -367,7 +361,7 @@ const ggml_openvino_device_info & ggml_openvino_info() {
|
|||
return info;
|
||||
}
|
||||
|
||||
GGML_API ggml_backend_reg_t ggml_backend_openvino_reg(void) {
|
||||
GGML_BACKEND_API ggml_backend_reg_t ggml_backend_openvino_reg(void) {
|
||||
static ggml_backend_reg reg;
|
||||
|
||||
static bool initialized = false;
|
||||
|
|
@ -394,14 +388,13 @@ GGML_API ggml_backend_reg_t ggml_backend_openvino_reg(void) {
|
|||
ctx->devices.push_back(dev);
|
||||
}
|
||||
|
||||
reg = ggml_backend_reg {
|
||||
/* .interface = */ ggml_backend_openvino_reg_interface,
|
||||
/* .context = */ ctx
|
||||
};
|
||||
reg = ggml_backend_reg{ /* .api_version = */ GGML_BACKEND_API_VERSION,
|
||||
/* .iface = */ ggml_backend_openvino_reg_interface,
|
||||
/* .context = */ ctx };
|
||||
}
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
return ®
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue