diff --git a/backend/go/acestep-cpp/CMakeLists.txt b/backend/go/acestep-cpp/CMakeLists.txt index 2fee794f2..647ae1766 100644 --- a/backend/go/acestep-cpp/CMakeLists.txt +++ b/backend/go/acestep-cpp/CMakeLists.txt @@ -25,7 +25,7 @@ target_include_directories(goacestepcpp PRIVATE ${ACESTEP_DIR}/src ${ACESTEP_DIR target_include_directories(goacestepcpp SYSTEM PRIVATE ${ACESTEP_DIR}/ggml/include) # Link GPU backends if available (mirrors link_ggml_backends macro) -foreach(backend blas cuda metal vulkan) +foreach(backend blas cuda hip metal vulkan) if(TARGET ggml-${backend}) target_link_libraries(goacestepcpp PRIVATE ggml-${backend}) string(TOUPPER ${backend} BACKEND_UPPER) diff --git a/backend/go/acestep-cpp/Makefile b/backend/go/acestep-cpp/Makefile index 3332ce1b6..711883f72 100644 --- a/backend/go/acestep-cpp/Makefile +++ b/backend/go/acestep-cpp/Makefile @@ -24,7 +24,14 @@ else ifeq ($(BUILD_TYPE),openblas) else ifeq ($(BUILD_TYPE),clblas) CMAKE_ARGS+=-DGGML_CLBLAST=ON -DCLBlast_DIR=/some/path else ifeq ($(BUILD_TYPE),hipblas) - CMAKE_ARGS+=-DGGML_HIPBLAS=ON + # This ggml only understands GGML_HIP (GGML_HIPBLAS was removed upstream), + # so passing GGML_HIPBLAS silently produced a CPU-only build (see #10666). + ROCM_HOME ?= /opt/rocm + ROCM_PATH ?= /opt/rocm + export CXX=$(ROCM_HOME)/llvm/bin/clang++ + export CC=$(ROCM_HOME)/llvm/bin/clang + AMDGPU_TARGETS ?= gfx908,gfx90a,gfx942,gfx950,gfx1030,gfx1100,gfx1101,gfx1102,gfx1151,gfx1200,gfx1201 + CMAKE_ARGS+=-DGGML_HIP=ON -DAMDGPU_TARGETS=$(AMDGPU_TARGETS) else ifeq ($(BUILD_TYPE),vulkan) CMAKE_ARGS+=-DGGML_VULKAN=ON else ifeq ($(OS),Darwin) diff --git a/backend/go/omnivoice-cpp/CMakeLists.txt b/backend/go/omnivoice-cpp/CMakeLists.txt index 43fafb02a..5d89cefb7 100644 --- a/backend/go/omnivoice-cpp/CMakeLists.txt +++ b/backend/go/omnivoice-cpp/CMakeLists.txt @@ -30,7 +30,7 @@ target_include_directories(gomnivoicecpp PRIVATE ${OMNIVOICE_DIR}/src) target_include_directories(gomnivoicecpp SYSTEM PRIVATE ${OMNIVOICE_DIR}/ggml/include) # Link GPU backends if the upstream ggml created them. -foreach(backend blas cuda metal vulkan sycl) +foreach(backend blas cuda hip metal vulkan sycl) if(TARGET ggml-${backend}) target_link_libraries(gomnivoicecpp PRIVATE ggml-${backend}) if(backend STREQUAL "cuda") diff --git a/backend/go/omnivoice-cpp/Makefile b/backend/go/omnivoice-cpp/Makefile index 36b447b13..0127c1ae2 100644 --- a/backend/go/omnivoice-cpp/Makefile +++ b/backend/go/omnivoice-cpp/Makefile @@ -24,7 +24,14 @@ else ifeq ($(BUILD_TYPE),openblas) else ifeq ($(BUILD_TYPE),clblas) CMAKE_ARGS+=-DGGML_CLBLAST=ON -DCLBlast_DIR=/some/path else ifeq ($(BUILD_TYPE),hipblas) - CMAKE_ARGS+=-DGGML_HIPBLAS=ON + # This ggml only understands GGML_HIP (GGML_HIPBLAS was removed upstream), + # so passing GGML_HIPBLAS silently produced a CPU-only build (see #10666). + ROCM_HOME ?= /opt/rocm + ROCM_PATH ?= /opt/rocm + export CXX=$(ROCM_HOME)/llvm/bin/clang++ + export CC=$(ROCM_HOME)/llvm/bin/clang + AMDGPU_TARGETS ?= gfx908,gfx90a,gfx942,gfx950,gfx1030,gfx1100,gfx1101,gfx1102,gfx1151,gfx1200,gfx1201 + CMAKE_ARGS+=-DGGML_HIP=ON -DAMDGPU_TARGETS=$(AMDGPU_TARGETS) else ifeq ($(BUILD_TYPE),vulkan) CMAKE_ARGS+=-DGGML_VULKAN=ON else ifeq ($(OS),Darwin) diff --git a/backend/go/qwen3-tts-cpp/CMakeLists.txt b/backend/go/qwen3-tts-cpp/CMakeLists.txt index 1245d8db6..6cf7d626e 100644 --- a/backend/go/qwen3-tts-cpp/CMakeLists.txt +++ b/backend/go/qwen3-tts-cpp/CMakeLists.txt @@ -30,7 +30,7 @@ target_include_directories(goqwen3ttscpp PRIVATE ${QWENTTS_DIR}/src) target_include_directories(goqwen3ttscpp SYSTEM PRIVATE ${QWENTTS_DIR}/ggml/include) # Link GPU backends if the upstream ggml created them. -foreach(backend blas cuda metal vulkan sycl) +foreach(backend blas cuda hip metal vulkan sycl) if(TARGET ggml-${backend}) target_link_libraries(goqwen3ttscpp PRIVATE ggml-${backend}) if(backend STREQUAL "cuda") diff --git a/backend/go/qwen3-tts-cpp/Makefile b/backend/go/qwen3-tts-cpp/Makefile index c2bc6de34..6b925a42b 100644 --- a/backend/go/qwen3-tts-cpp/Makefile +++ b/backend/go/qwen3-tts-cpp/Makefile @@ -24,7 +24,14 @@ else ifeq ($(BUILD_TYPE),openblas) else ifeq ($(BUILD_TYPE),clblas) CMAKE_ARGS+=-DGGML_CLBLAST=ON -DCLBlast_DIR=/some/path else ifeq ($(BUILD_TYPE),hipblas) - CMAKE_ARGS+=-DGGML_HIPBLAS=ON + # This ggml only understands GGML_HIP (GGML_HIPBLAS was removed upstream), + # so passing GGML_HIPBLAS silently produced a CPU-only build (see #10666). + ROCM_HOME ?= /opt/rocm + ROCM_PATH ?= /opt/rocm + export CXX=$(ROCM_HOME)/llvm/bin/clang++ + export CC=$(ROCM_HOME)/llvm/bin/clang + AMDGPU_TARGETS ?= gfx908,gfx90a,gfx942,gfx950,gfx1030,gfx1100,gfx1101,gfx1102,gfx1151,gfx1200,gfx1201 + CMAKE_ARGS+=-DGGML_HIP=ON -DAMDGPU_TARGETS=$(AMDGPU_TARGETS) else ifeq ($(BUILD_TYPE),vulkan) CMAKE_ARGS+=-DGGML_VULKAN=ON else ifeq ($(OS),Darwin) diff --git a/backend/go/vibevoice-cpp/CMakeLists.txt b/backend/go/vibevoice-cpp/CMakeLists.txt index 358e5d7bd..d9fa983d7 100644 --- a/backend/go/vibevoice-cpp/CMakeLists.txt +++ b/backend/go/vibevoice-cpp/CMakeLists.txt @@ -50,7 +50,7 @@ target_include_directories(govibevoicecpp SYSTEM PRIVATE ${VIBEVOICE_DIR}/third_ # Link GPU backends if available — vibevoice's own CMake already links # these to the libvibevoice STATIC library, but we re-link them on the # MODULE so resolved symbols include all backend kernels. -foreach(backend blas cuda metal vulkan) +foreach(backend blas cuda hip metal vulkan) if(TARGET ggml-${backend}) target_link_libraries(govibevoicecpp PRIVATE ggml-${backend}) string(TOUPPER ${backend} BACKEND_UPPER) diff --git a/backend/go/vibevoice-cpp/Makefile b/backend/go/vibevoice-cpp/Makefile index dc71eaa5d..77f597738 100644 --- a/backend/go/vibevoice-cpp/Makefile +++ b/backend/go/vibevoice-cpp/Makefile @@ -29,7 +29,14 @@ else ifeq ($(BUILD_TYPE),openblas) else ifeq ($(BUILD_TYPE),clblas) CMAKE_ARGS+=-DGGML_CLBLAST=ON -DCLBlast_DIR=/some/path else ifeq ($(BUILD_TYPE),hipblas) - CMAKE_ARGS+=-DGGML_HIPBLAS=ON -DVIBEVOICE_GGML_HIPBLAS=ON + # This ggml only understands GGML_HIP (GGML_HIPBLAS was removed upstream), + # so passing GGML_HIPBLAS silently produced a CPU-only build (see #10666). + ROCM_HOME ?= /opt/rocm + ROCM_PATH ?= /opt/rocm + export CXX=$(ROCM_HOME)/llvm/bin/clang++ + export CC=$(ROCM_HOME)/llvm/bin/clang + AMDGPU_TARGETS ?= gfx908,gfx90a,gfx942,gfx950,gfx1030,gfx1100,gfx1101,gfx1102,gfx1151,gfx1200,gfx1201 + CMAKE_ARGS+=-DGGML_HIP=ON -DAMDGPU_TARGETS=$(AMDGPU_TARGETS) else ifeq ($(BUILD_TYPE),vulkan) CMAKE_ARGS+=-DGGML_VULKAN=ON -DVIBEVOICE_GGML_VULKAN=ON else ifeq ($(OS),Darwin)