ggml/kompute: Introduce ggml_backend_kompute_get_device_memory()
Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
This commit is contained in:
parent
97efd5047a
commit
56c5f988eb
2 changed files with 14 additions and 0 deletions
|
@ -26,6 +26,7 @@ struct ggml_vk_device {
|
||||||
|
|
||||||
struct ggml_vk_device * ggml_vk_available_devices(size_t memoryRequired, size_t * count);
|
struct ggml_vk_device * ggml_vk_available_devices(size_t memoryRequired, size_t * count);
|
||||||
int ggml_backend_kompute_get_device_count(void);
|
int ggml_backend_kompute_get_device_count(void);
|
||||||
|
void ggml_backend_kompute_get_device_memory(int device, size_t * free, size_t * total);
|
||||||
bool ggml_vk_get_device(struct ggml_vk_device * device, size_t memoryRequired, const char * name);
|
bool ggml_vk_get_device(struct ggml_vk_device * device, size_t memoryRequired, const char * name);
|
||||||
bool ggml_vk_has_vulkan(void);
|
bool ggml_vk_has_vulkan(void);
|
||||||
|
|
||||||
|
|
|
@ -339,6 +339,19 @@ int ggml_backend_kompute_get_device_count(void) {
|
||||||
return devices.size();
|
return devices.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ggml_backend_kompute_get_device_memory(int device, size_t * free, size_t * total) {
|
||||||
|
auto devices = ggml_vk_available_devices_internal(0);
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i < devices.size(); i++) {
|
||||||
|
if (devices[i].index == device) {
|
||||||
|
*total = devices[i].heapSize;
|
||||||
|
*free = devices[i].heapSize;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void ggml_vk_filterByVendor(std::vector<ggml_vk_device>& devices, const std::string& targetVendor) {
|
static void ggml_vk_filterByVendor(std::vector<ggml_vk_device>& devices, const std::string& targetVendor) {
|
||||||
devices.erase(
|
devices.erase(
|
||||||
std::remove_if(devices.begin(), devices.end(),
|
std::remove_if(devices.begin(), devices.end(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue