mirror of
https://github.com/zebrajr/ollama.git
synced 2025-12-06 00:19:51 +01:00
vulkan: Get FilterID from Backend for Vulkan (#12655)
* vulkan: Get FilterID from Backend for Vulkan * Fixing patch
This commit is contained in:
parent
4be41d2d45
commit
c744134287
|
|
@ -550,13 +550,6 @@ func bootstrapDevices(ctx context.Context, ollamaLibDirs []string, extraEnvs []s
|
|||
}
|
||||
logutil.Trace("runner enumerated devices", "OLLAMA_LIBRARY_PATH", ollamaLibDirs, "devices", devices)
|
||||
|
||||
// Enumerate returned devices starting at 0 per library and assign the per-library index as FilteredID
|
||||
libCounts := make(map[string]int)
|
||||
for i := range devices {
|
||||
lib := devices[i].Library
|
||||
devices[i].FilteredID = strconv.Itoa(libCounts[lib])
|
||||
libCounts[lib]++
|
||||
}
|
||||
return devices
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ diff --git a/ggml/include/ggml-backend.h b/ggml/include/ggml-backend.h
|
|||
index ba181d09..09ff75f9 100644
|
||||
--- a/ggml/include/ggml-backend.h
|
||||
+++ b/ggml/include/ggml-backend.h
|
||||
@@ -169,6 +169,15 @@ extern "C" {
|
||||
@@ -169,6 +169,17 @@ extern "C" {
|
||||
const char * device_id;
|
||||
// device capabilities
|
||||
struct ggml_backend_dev_caps caps;
|
||||
|
|
@ -35,6 +35,8 @@ index ba181d09..09ff75f9 100644
|
|||
+ int pci_device_id;
|
||||
+ int pci_domain_id;
|
||||
+ const char *library;
|
||||
+ // number with which the devices are accessed (Vulkan)
|
||||
+ const char *numeric_id;
|
||||
};
|
||||
|
||||
GGML_API const char * ggml_backend_dev_name(ggml_backend_dev_t device);
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ index adea7783..fb7204ce 100644
|
|||
ggml_backend_vk_device_get_memory(dev, &props->memory_free, &props->memory_total);
|
||||
props->caps = {
|
||||
/* .async = */ false,
|
||||
@@ -12564,6 +12633,16 @@ static void ggml_backend_vk_device_get_props(ggml_backend_dev_t dev, struct ggml
|
||||
@@ -12564,6 +12633,17 @@ static void ggml_backend_vk_device_get_props(ggml_backend_dev_t dev, struct ggml
|
||||
/* .buffer_from_host_ptr = */ false,
|
||||
/* .events = */ false,
|
||||
};
|
||||
|
|
@ -189,6 +189,7 @@ index adea7783..fb7204ce 100644
|
|||
+ props->pci_device_id = ctx->pci_device_id;
|
||||
+ props->pci_domain_id = ctx->pci_domain_id;
|
||||
+ props->library = GGML_VK_NAME;
|
||||
+ props->numeric_id = ctx->id.empty() ? nullptr : ctx->id.c_str();
|
||||
}
|
||||
|
||||
static ggml_backend_t ggml_backend_vk_device_init(ggml_backend_dev_t dev, const char * params) {
|
||||
|
|
|
|||
|
|
@ -726,6 +726,9 @@ func (b *Backend) BackendDevices() []ml.DeviceInfo {
|
|||
}
|
||||
info.PCIID = fmt.Sprintf("%02x:%02x.%x", props.pci_bus_id, props.pci_device_id, props.pci_domain_id)
|
||||
info.LibraryPath = ggml.LibPaths()
|
||||
if props.numeric_id != nil {
|
||||
info.FilteredID = C.GoString(props.numeric_id)
|
||||
}
|
||||
|
||||
C.ggml_backend_dev_memory(dev, &props.memory_free, &props.memory_total)
|
||||
info.TotalMemory = (uint64)(props.memory_total)
|
||||
|
|
|
|||
2
ml/backend/ggml/ggml/include/ggml-backend.h
vendored
2
ml/backend/ggml/ggml/include/ggml-backend.h
vendored
|
|
@ -178,6 +178,8 @@ extern "C" {
|
|||
int pci_device_id;
|
||||
int pci_domain_id;
|
||||
const char *library;
|
||||
// number with which the devices are accessed (Vulkan)
|
||||
const char *numeric_id;
|
||||
};
|
||||
|
||||
GGML_API const char * ggml_backend_dev_name(ggml_backend_dev_t device);
|
||||
|
|
|
|||
|
|
@ -12640,6 +12640,7 @@ static void ggml_backend_vk_device_get_props(ggml_backend_dev_t dev, struct ggml
|
|||
props->pci_device_id = ctx->pci_device_id;
|
||||
props->pci_domain_id = ctx->pci_domain_id;
|
||||
props->library = GGML_VK_NAME;
|
||||
props->numeric_id = ctx->id.empty() ? nullptr : ctx->id.c_str();
|
||||
}
|
||||
|
||||
static ggml_backend_t ggml_backend_vk_device_init(ggml_backend_dev_t dev, const char * params) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user