build_hipblas.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/bash
  2. archs=(
  3. gfx900
  4. gfx940
  5. gfx941
  6. gfx942
  7. gfx1010
  8. gfx1012
  9. gfx1030
  10. gfx1100
  11. gfx1101
  12. gfx1102
  13. )
  14. linux_archs=(
  15. gfx906:xnack-
  16. gfx908:xnack-
  17. gfx90a:xnack+
  18. gfx90a:xnack-
  19. )
  20. os="$(uname -s)"
  21. additional_flags=""
  22. if [[ "$os" == "Windows_NT" || "$os" == "MINGW64_NT"* ]]; then
  23. output="ggml-hipblas.dll"
  24. additional_flags="-Xclang --dependent-lib=msvcrt -Wl,/subsystem:console"
  25. else
  26. output="libggml-hipblas.so"
  27. archs+=("${linux_archs[@]}")
  28. fi
  29. offload_arch_flags=""
  30. for arch in "${archs[@]}"; do
  31. offload_arch_flags+=" --offload-arch=$arch"
  32. done
  33. hipcc \
  34. -parallel-jobs=12 \
  35. -O3 \
  36. -DGGML_USE_CUDA \
  37. -DGGML_BUILD=1 \
  38. -DGGML_SHARED=1 \
  39. -DGGML_CUDA_DMMV_X=32 \
  40. -DGGML_CUDA_MMV_Y=1 \
  41. -DGGML_SCHED_MAX_COPIES=4 \
  42. -DGGML_USE_HIPBLAS \
  43. -DGGML_USE_LLAMAFILE \
  44. -DHIP_FAST_MATH \
  45. -DNDEBUG \
  46. -DK_QUANTS_PER_ITERATION=2 \
  47. -D_CRT_SECURE_NO_WARNINGS \
  48. -DCMAKE_POSITION_INDEPENDENT_CODE=on \
  49. -D_GNU_SOURCE \
  50. $offload_arch_flags \
  51. $additional_flags \
  52. -Wno-expansion-to-defined \
  53. -Wno-invalid-noreturn \
  54. -Wno-ignored-attributes \
  55. -Wno-pass-failed \
  56. -Wno-deprecated-declarations \
  57. -I. \
  58. -lhipblas -lamdhip64 -lrocblas \
  59. -shared \
  60. -o ggml-hipblas.dll \
  61. ggml-cuda.cu ggml-cuda/*.cu ggml.c ggml-backend.c ggml-alloc.c ggml-quants.c sgemm.cpp
  62. # -D_DLL \
  63. # -D_MT \
  64. # -D_XOPEN_SOURCE=600 \