Skip to content

Commit 7352525

Browse files
committed
ggml/kompute: Introduce ggml_backend_kompute_get_device_memory()
Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
1 parent 31a4649 commit 7352525

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

ggml/include/ggml-kompute.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ struct ggml_vk_device {
2626

2727
struct ggml_vk_device * ggml_vk_available_devices(size_t memoryRequired, size_t * count);
2828
int ggml_backend_kompute_get_device_count(void);
29+
void ggml_backend_kompute_get_device_memory(int device, size_t * free, size_t * total);
2930
bool ggml_vk_get_device(struct ggml_vk_device * device, size_t memoryRequired, const char * name);
3031
bool ggml_vk_has_vulkan(void);
3132

ggml/src/ggml-kompute.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,19 @@ int ggml_backend_kompute_get_device_count(void) {
339339
return devices.size();
340340
}
341341

342+
343+
void ggml_backend_kompute_get_device_memory(int device, size_t * free, size_t * total) {
344+
auto devices = ggml_vk_available_devices_internal(0);
345+
346+
for (std::size_t i = 0; i < devices.size(); i++) {
347+
if (devices[i].index == device) {
348+
*total = devices[i].heapSize;
349+
*free = devices[i].heapSize;
350+
break;
351+
}
352+
}
353+
}
354+
342355
static void ggml_vk_filterByVendor(std::vector<ggml_vk_device>& devices, const std::string& targetVendor) {
343356
devices.erase(
344357
std::remove_if(devices.begin(), devices.end(),

0 commit comments

Comments
 (0)