Skip to content

Commit 638dfcb

Browse files
committed
fix: make NVIDIA CUDA targets shared to prevent segfault
Change `infiniop-nvidia`, `infinirt-nvidia`, `infiniccl-nvidia` from static to shared libraries so that `nvcc` performs proper CUDA device linking within each `.so`. When these were static archives, `g++` linked them into downstream shared libraries without device linking, corrupting `.nv_fatbin` registration and causing segfaults in `__cudaRegisterLinkedBinary` during `dlopen`. Also replace no-op `on_install` with proper `set_installdir` for all four NVIDIA targets (including `flash-attn-nvidia`).
1 parent c3e0c69 commit 638dfcb

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

xmake/nvidia.lua

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ local FLASH_ATTN_ROOT = get_config("flash-attn")
1414
local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini")
1515

1616
target("infiniop-nvidia")
17-
set_kind("static")
17+
set_kind("shared")
1818
add_deps("infini-utils")
19-
on_install(function (target) end)
19+
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
2020

2121
set_policy("build.cuda.devlink", true)
2222
set_toolchains("cuda")
@@ -101,9 +101,9 @@ target("infiniop-nvidia")
101101
target_end()
102102

103103
target("infinirt-nvidia")
104-
set_kind("static")
104+
set_kind("shared")
105105
add_deps("infini-utils")
106-
on_install(function (target) end)
106+
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
107107

108108
set_policy("build.cuda.devlink", true)
109109
set_toolchains("cuda")
@@ -124,9 +124,9 @@ target("infinirt-nvidia")
124124
target_end()
125125

126126
target("infiniccl-nvidia")
127-
set_kind("static")
127+
set_kind("shared")
128128
add_deps("infinirt")
129-
on_install(function (target) end)
129+
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
130130
if has_config("ccl") then
131131
set_policy("build.cuda.devlink", true)
132132
set_toolchains("cuda")
@@ -202,6 +202,6 @@ target("flash-attn-nvidia")
202202
on_build(function (target) end)
203203
end
204204

205-
on_install(function (target) end)
205+
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini"))
206206

207207
target_end()

0 commit comments

Comments
 (0)