Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
ed567ef4
Unverified
Commit
ed567ef4
authored
Jun 18, 2025
by
Jeffrey Morgan
Committed by
GitHub
Jun 18, 2025
Browse files
Revert "ggml: Export GPU UUIDs" (#11115)
This reverts commit
aaa78180
.
parent
a6e64fbd
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
0 additions
and
151 deletions
+0
-151
llama/patches/0017-ggml-Export-GPU-UUIDs.patch
llama/patches/0017-ggml-Export-GPU-UUIDs.patch
+0
-102
ml/backend.go
ml/backend.go
+0
-8
ml/backend/ggml/ggml.go
ml/backend/ggml/ggml.go
+0
-6
ml/backend/ggml/ggml/include/ggml-backend.h
ml/backend/ggml/ggml/include/ggml-backend.h
+0
-1
ml/backend/ggml/ggml/src/ggml-cuda/ggml-cuda.cu
ml/backend/ggml/ggml/src/ggml-cuda/ggml-cuda.cu
+0
-33
ml/backend/ggml/ggml/src/ggml-metal/ggml-metal.m
ml/backend/ggml/ggml/src/ggml-metal/ggml-metal.m
+0
-1
No files found.
llama/patches/0017-ggml-Export-GPU-UUIDs.patch
deleted
100644 → 0
View file @
a6e64fbd
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jesse Gross <jesse@ollama.com>
Date: Thu, 24 Apr 2025 14:48:51 -0700
Subject: [PATCH] ggml: Export GPU UUIDs
This enables matching up devices and information reported by the backend
with tools (e.g. nvidia-smi) and system management libraries (e.g. nvml).
---
ggml/include/ggml-backend.h | 1 +
ggml/src/ggml-cuda/ggml-cuda.cu | 33 ++++++++++++++++++++++++++++++++
ggml/src/ggml-metal/ggml-metal.m | 1 +
3 files changed, 35 insertions(+)
diff --git a/ggml/include/ggml-backend.h b/ggml/include/ggml-backend.h
index 74e46716..a880df33 100644
--- a/ggml/include/ggml-backend.h
+++ b/ggml/include/ggml-backend.h
@@ -152,6 +152,7 @@
extern "C" {
struct ggml_backend_dev_props {
const char * name;
const char * description;
+ const char * uuid;
size_t memory_free;
size_t memory_total;
enum ggml_backend_dev_type type;
diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu
index cb0d8528..4c829153 100644
--- a/ggml/src/ggml-cuda/ggml-cuda.cu
+++ b/ggml/src/ggml-cuda/ggml-cuda.cu
@@ -2884,6 +2884,7 @@
struct ggml_backend_cuda_device_context {
int device;
std::string name;
std::string description;
+ std::string uuid;
};
static const char * ggml_backend_cuda_device_get_name(ggml_backend_dev_t dev) {
@@ -2896,6 +2897,11 @@
static const char * ggml_backend_cuda_device_get_description(ggml_backend_dev_t
return ctx->description.c_str();
}
+static const char * ggml_backend_cuda_device_get_uuid(ggml_backend_dev_t dev) {
+ ggml_backend_cuda_device_context * ctx = (ggml_backend_cuda_device_context *)dev->context;
+ return ctx->uuid.c_str();
+}
+
static void ggml_backend_cuda_device_get_memory(ggml_backend_dev_t dev, size_t * free, size_t * total) {
ggml_backend_cuda_device_context * ctx = (ggml_backend_cuda_device_context *)dev->context;
ggml_cuda_set_device(ctx->device);
@@ -2910,6 +2916,7 @@
static enum ggml_backend_dev_type ggml_backend_cuda_device_get_type(ggml_backend
static void ggml_backend_cuda_device_get_props(ggml_backend_dev_t dev, ggml_backend_dev_props * props) {
props->name = ggml_backend_cuda_device_get_name(dev);
props->description = ggml_backend_cuda_device_get_description(dev);
+ props->uuid = ggml_backend_cuda_device_get_uuid(dev);
props->type = ggml_backend_cuda_device_get_type(dev);
ggml_backend_cuda_device_get_memory(dev, &props->memory_free, &props->memory_total);
@@ -3458,6 +3465,32 @@
ggml_backend_reg_t ggml_backend_cuda_reg() {
CUDA_CHECK(cudaGetDeviceProperties(&prop, i));
dev_ctx->description = prop.name;
+ #if !defined(GGML_USE_HIP)
+ char uuid[64];
+ snprintf(uuid, sizeof(uuid),
+ "GPU-%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ (unsigned char)prop.uuid.bytes[0],
+ (unsigned char)prop.uuid.bytes[1],
+ (unsigned char)prop.uuid.bytes[2],
+ (unsigned char)prop.uuid.bytes[3],
+ (unsigned char)prop.uuid.bytes[4],
+ (unsigned char)prop.uuid.bytes[5],
+ (unsigned char)prop.uuid.bytes[6],
+ (unsigned char)prop.uuid.bytes[7],
+ (unsigned char)prop.uuid.bytes[8],
+ (unsigned char)prop.uuid.bytes[9],
+ (unsigned char)prop.uuid.bytes[10],
+ (unsigned char)prop.uuid.bytes[11],
+ (unsigned char)prop.uuid.bytes[12],
+ (unsigned char)prop.uuid.bytes[13],
+ (unsigned char)prop.uuid.bytes[14],
+ (unsigned char)prop.uuid.bytes[15]
+ );
+ dev_ctx->uuid = uuid;
+ #else
+ dev_ctx->uuid = "GPU-" + std::string(prop.uuid.bytes, 16);
+ #endif
+
ggml_backend_dev_t dev = new ggml_backend_device {
/* .iface = */ ggml_backend_cuda_device_interface,
/* .reg = */ ®,
diff --git a/ggml/src/ggml-metal/ggml-metal.m b/ggml/src/ggml-metal/ggml-metal.m
index 1b56f858..ee4f2dcb 100644
--- a/ggml/src/ggml-metal/ggml-metal.m
+++ b/ggml/src/ggml-metal/ggml-metal.m
@@ -5703,6 +5703,7 @@
static enum ggml_backend_dev_type ggml_backend_metal_device_get_type(ggml_backen
static void ggml_backend_metal_device_get_props(ggml_backend_dev_t dev, struct ggml_backend_dev_props * props) {
props->name = ggml_backend_metal_device_get_name(dev);
props->description = ggml_backend_metal_device_get_description(dev);
+ props->uuid = "0";
props->type = ggml_backend_metal_device_get_type(dev);
ggml_backend_metal_device_get_memory(dev, &props->memory_free, &props->memory_total);
props->caps = (struct ggml_backend_dev_caps) {
ml/backend.go
View file @
ed567ef4
...
@@ -124,10 +124,6 @@ type DeviceMemory struct {
...
@@ -124,10 +124,6 @@ type DeviceMemory struct {
// may not be persistent across instances of the runner.
// may not be persistent across instances of the runner.
Name
string
Name
string
// UUID is a unique persistent identifier for the device for matching
// with system management libraries
UUID
string
// Weights is the per-layer memory needed for the model weights.
// Weights is the per-layer memory needed for the model weights.
Weights
[]
Memory
Weights
[]
Memory
...
@@ -156,10 +152,6 @@ func (m DeviceMemory) LogValue() slog.Value {
...
@@ -156,10 +152,6 @@ func (m DeviceMemory) LogValue() slog.Value {
attrs
=
append
(
attrs
,
slog
.
Any
(
"Graph"
,
m
.
Graph
))
attrs
=
append
(
attrs
,
slog
.
Any
(
"Graph"
,
m
.
Graph
))
}
}
if
len
(
attrs
)
>
0
&&
m
.
UUID
!=
""
{
attrs
=
append
([]
slog
.
Attr
{
slog
.
String
(
"UUID"
,
m
.
UUID
)},
attrs
...
)
}
return
slog
.
GroupValue
(
attrs
...
)
return
slog
.
GroupValue
(
attrs
...
)
}
}
...
...
ml/backend/ggml/ggml.go
View file @
ed567ef4
...
@@ -136,9 +136,6 @@ func New(modelPath string, params ml.BackendParams) (ml.Backend, error) {
...
@@ -136,9 +136,6 @@ func New(modelPath string, params ml.BackendParams) (ml.Backend, error) {
}
}
requiredMemory
.
CPU
.
Name
=
C
.
GoString
(
C
.
ggml_backend_dev_name
(
cpuDeviceBufferType
.
d
))
requiredMemory
.
CPU
.
Name
=
C
.
GoString
(
C
.
ggml_backend_dev_name
(
cpuDeviceBufferType
.
d
))
var
props
C
.
struct_ggml_backend_dev_props
C
.
ggml_backend_dev_get_props
(
cpuDeviceBufferType
.
d
,
&
props
)
requiredMemory
.
CPU
.
UUID
=
C
.
GoString
(
props
.
uuid
)
requiredMemory
.
CPU
.
Weights
=
make
([]
ml
.
Memory
,
blocks
+
1
)
requiredMemory
.
CPU
.
Weights
=
make
([]
ml
.
Memory
,
blocks
+
1
)
requiredMemory
.
CPU
.
Cache
=
make
([]
ml
.
Memory
,
blocks
+
1
)
requiredMemory
.
CPU
.
Cache
=
make
([]
ml
.
Memory
,
blocks
+
1
)
...
@@ -153,9 +150,6 @@ func New(modelPath string, params ml.BackendParams) (ml.Backend, error) {
...
@@ -153,9 +150,6 @@ func New(modelPath string, params ml.BackendParams) (ml.Backend, error) {
})
})
btDeviceMemory
[
bt
]
=
&
requiredMemory
.
GPUs
[
i
]
btDeviceMemory
[
bt
]
=
&
requiredMemory
.
GPUs
[
i
]
requiredMemory
.
GPUs
[
i
]
.
Name
=
C
.
GoString
(
C
.
ggml_backend_dev_name
(
d
))
requiredMemory
.
GPUs
[
i
]
.
Name
=
C
.
GoString
(
C
.
ggml_backend_dev_name
(
d
))
var
props
C
.
struct_ggml_backend_dev_props
C
.
ggml_backend_dev_get_props
(
d
,
&
props
)
requiredMemory
.
GPUs
[
i
]
.
UUID
=
C
.
GoString
(
props
.
uuid
)
requiredMemory
.
GPUs
[
i
]
.
Weights
=
make
([]
ml
.
Memory
,
blocks
+
1
)
requiredMemory
.
GPUs
[
i
]
.
Weights
=
make
([]
ml
.
Memory
,
blocks
+
1
)
requiredMemory
.
GPUs
[
i
]
.
Cache
=
make
([]
ml
.
Memory
,
blocks
+
1
)
requiredMemory
.
GPUs
[
i
]
.
Cache
=
make
([]
ml
.
Memory
,
blocks
+
1
)
}
}
...
...
ml/backend/ggml/ggml/include/ggml-backend.h
View file @
ed567ef4
...
@@ -152,7 +152,6 @@ extern "C" {
...
@@ -152,7 +152,6 @@ extern "C" {
struct
ggml_backend_dev_props
{
struct
ggml_backend_dev_props
{
const
char
*
name
;
const
char
*
name
;
const
char
*
description
;
const
char
*
description
;
const
char
*
uuid
;
size_t
memory_free
;
size_t
memory_free
;
size_t
memory_total
;
size_t
memory_total
;
enum
ggml_backend_dev_type
type
;
enum
ggml_backend_dev_type
type
;
...
...
ml/backend/ggml/ggml/src/ggml-cuda/ggml-cuda.cu
View file @
ed567ef4
...
@@ -2884,7 +2884,6 @@ struct ggml_backend_cuda_device_context {
...
@@ -2884,7 +2884,6 @@ struct ggml_backend_cuda_device_context {
int
device
;
int
device
;
std
::
string
name
;
std
::
string
name
;
std
::
string
description
;
std
::
string
description
;
std
::
string
uuid
;
};
};
static
const
char
*
ggml_backend_cuda_device_get_name
(
ggml_backend_dev_t
dev
)
{
static
const
char
*
ggml_backend_cuda_device_get_name
(
ggml_backend_dev_t
dev
)
{
...
@@ -2897,11 +2896,6 @@ static const char * ggml_backend_cuda_device_get_description(ggml_backend_dev_t
...
@@ -2897,11 +2896,6 @@ static const char * ggml_backend_cuda_device_get_description(ggml_backend_dev_t
return
ctx
->
description
.
c_str
();
return
ctx
->
description
.
c_str
();
}
}
static
const
char
*
ggml_backend_cuda_device_get_uuid
(
ggml_backend_dev_t
dev
)
{
ggml_backend_cuda_device_context
*
ctx
=
(
ggml_backend_cuda_device_context
*
)
dev
->
context
;
return
ctx
->
uuid
.
c_str
();
}
static
void
ggml_backend_cuda_device_get_memory
(
ggml_backend_dev_t
dev
,
size_t
*
free
,
size_t
*
total
)
{
static
void
ggml_backend_cuda_device_get_memory
(
ggml_backend_dev_t
dev
,
size_t
*
free
,
size_t
*
total
)
{
ggml_backend_cuda_device_context
*
ctx
=
(
ggml_backend_cuda_device_context
*
)
dev
->
context
;
ggml_backend_cuda_device_context
*
ctx
=
(
ggml_backend_cuda_device_context
*
)
dev
->
context
;
ggml_cuda_set_device
(
ctx
->
device
);
ggml_cuda_set_device
(
ctx
->
device
);
...
@@ -2916,7 +2910,6 @@ static enum ggml_backend_dev_type ggml_backend_cuda_device_get_type(ggml_backend
...
@@ -2916,7 +2910,6 @@ static enum ggml_backend_dev_type ggml_backend_cuda_device_get_type(ggml_backend
static
void
ggml_backend_cuda_device_get_props
(
ggml_backend_dev_t
dev
,
ggml_backend_dev_props
*
props
)
{
static
void
ggml_backend_cuda_device_get_props
(
ggml_backend_dev_t
dev
,
ggml_backend_dev_props
*
props
)
{
props
->
name
=
ggml_backend_cuda_device_get_name
(
dev
);
props
->
name
=
ggml_backend_cuda_device_get_name
(
dev
);
props
->
description
=
ggml_backend_cuda_device_get_description
(
dev
);
props
->
description
=
ggml_backend_cuda_device_get_description
(
dev
);
props
->
uuid
=
ggml_backend_cuda_device_get_uuid
(
dev
);
props
->
type
=
ggml_backend_cuda_device_get_type
(
dev
);
props
->
type
=
ggml_backend_cuda_device_get_type
(
dev
);
ggml_backend_cuda_device_get_memory
(
dev
,
&
props
->
memory_free
,
&
props
->
memory_total
);
ggml_backend_cuda_device_get_memory
(
dev
,
&
props
->
memory_free
,
&
props
->
memory_total
);
...
@@ -3465,32 +3458,6 @@ ggml_backend_reg_t ggml_backend_cuda_reg() {
...
@@ -3465,32 +3458,6 @@ ggml_backend_reg_t ggml_backend_cuda_reg() {
CUDA_CHECK
(
cudaGetDeviceProperties
(
&
prop
,
i
));
CUDA_CHECK
(
cudaGetDeviceProperties
(
&
prop
,
i
));
dev_ctx
->
description
=
prop
.
name
;
dev_ctx
->
description
=
prop
.
name
;
#if !defined(GGML_USE_HIP)
char
uuid
[
64
];
snprintf
(
uuid
,
sizeof
(
uuid
),
"GPU-%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x"
,
(
unsigned
char
)
prop
.
uuid
.
bytes
[
0
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
1
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
2
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
3
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
4
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
5
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
6
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
7
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
8
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
9
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
10
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
11
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
12
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
13
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
14
],
(
unsigned
char
)
prop
.
uuid
.
bytes
[
15
]
);
dev_ctx
->
uuid
=
uuid
;
#else
dev_ctx
->
uuid
=
"GPU-"
+
std
::
string
(
prop
.
uuid
.
bytes
,
16
);
#endif
ggml_backend_dev_t
dev
=
new
ggml_backend_device
{
ggml_backend_dev_t
dev
=
new
ggml_backend_device
{
/* .iface = */
ggml_backend_cuda_device_interface
,
/* .iface = */
ggml_backend_cuda_device_interface
,
/* .reg = */
&
reg
,
/* .reg = */
&
reg
,
...
...
ml/backend/ggml/ggml/src/ggml-metal/ggml-metal.m
View file @
ed567ef4
...
@@ -5703,7 +5703,6 @@ static enum ggml_backend_dev_type ggml_backend_metal_device_get_type(ggml_backen
...
@@ -5703,7 +5703,6 @@ static enum ggml_backend_dev_type ggml_backend_metal_device_get_type(ggml_backen
static
void
ggml_backend_metal_device_get_props
(
ggml_backend_dev_t
dev
,
struct
ggml_backend_dev_props
*
props
)
{
static
void
ggml_backend_metal_device_get_props
(
ggml_backend_dev_t
dev
,
struct
ggml_backend_dev_props
*
props
)
{
props
->
name
=
ggml_backend_metal_device_get_name
(
dev
);
props
->
name
=
ggml_backend_metal_device_get_name
(
dev
);
props
->
description
=
ggml_backend_metal_device_get_description
(
dev
);
props
->
description
=
ggml_backend_metal_device_get_description
(
dev
);
props
->
uuid
=
"0"
;
props
->
type
=
ggml_backend_metal_device_get_type
(
dev
);
props
->
type
=
ggml_backend_metal_device_get_type
(
dev
);
ggml_backend_metal_device_get_memory
(
dev
,
&
props
->
memory_free
,
&
props
->
memory_total
);
ggml_backend_metal_device_get_memory
(
dev
,
&
props
->
memory_free
,
&
props
->
memory_total
);
props
->
caps
=
(
struct
ggml_backend_dev_caps
)
{
props
->
caps
=
(
struct
ggml_backend_dev_caps
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment