Allow overriding gfx version per-node
This lets you run two unsupported-but-really-supported cards of different architecture together in the same program. Works great w/ llama.cpp on my 7900XT + 6600.
Example usage (device 0 is RDNA3, device 1 is RDNA2):
HSA_OVERRIDE_GFX_VERSION_1="11.0.0" HSA_OVERRIDE_GFX_VERSION_2="10.3.0" ollama serve
Change-Id: Ic63ef462f698dee722d360f7fc3ef72789c277b7
Signed-off-by: AdamNiederer
Signed-off-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Chris Freehill <cfreehil@amd.com>
[ROCm/ROCR-Runtime commit: 84567b6416]
This commit is contained in:
کامیت شده توسط
Chris Freehill
والد
516199b400
کامیت
ffafd46406
@@ -1064,6 +1064,7 @@ static HSAKMT_STATUS topology_sysfs_get_node_props(uint32_t node_id,
|
||||
char *read_buf, *p, *envvar, dummy = '\0';
|
||||
char prop_name[256];
|
||||
char path[256];
|
||||
char per_node_override[32];
|
||||
unsigned long long prop_val = 0;
|
||||
uint32_t prog, major = 0, minor = 0, step = 0;
|
||||
int read_size;
|
||||
@@ -1210,8 +1211,8 @@ static HSAKMT_STATUS topology_sysfs_get_node_props(uint32_t node_id,
|
||||
|
||||
hsa_gfxip = find_hsa_gfxip_device(props->DeviceId, gfxv_major);
|
||||
if (hsa_gfxip || gfxv) {
|
||||
envvar = getenv("HSA_OVERRIDE_GFX_VERSION");
|
||||
if (envvar) {
|
||||
snprintf(per_node_override, sizeof(per_node_override), "HSA_OVERRIDE_GFX_VERSION_%d", node_id);
|
||||
if ((envvar = getenv(per_node_override)) || (envvar = getenv("HSA_OVERRIDE_GFX_VERSION"))) {
|
||||
/* HSA_OVERRIDE_GFX_VERSION=major.minor.stepping */
|
||||
if ((sscanf(envvar, "%u.%u.%u%c",
|
||||
&major, &minor, &step, &dummy) != 3) ||
|
||||
|
||||
مرجع در شماره جدید
Block a user