payload_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package llm
  2. import (
  3. "testing"
  4. "github.com/jmorganca/ollama/gpu"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestGetDynLibs(t *testing.T) {
  8. availableDynLibs = map[string]string{
  9. "cpu": "X_cpu",
  10. }
  11. assert.Equal(t, false, rocmDynLibPresent())
  12. res := getDynLibs(gpu.GpuInfo{Library: "cpu"})
  13. assert.Len(t, res, 1)
  14. assert.Equal(t, availableDynLibs["cpu"], res[0])
  15. variant := gpu.GetCPUVariant()
  16. if variant != "" {
  17. variant = "_" + variant
  18. }
  19. availableDynLibs = map[string]string{
  20. "rocm_v5": "X_rocm_v5",
  21. "rocm_v6": "X_rocm_v6",
  22. "cpu" + variant: "X_cpu",
  23. }
  24. assert.Equal(t, true, rocmDynLibPresent())
  25. res = getDynLibs(gpu.GpuInfo{Library: "rocm"})
  26. assert.Len(t, res, 3)
  27. assert.Equal(t, availableDynLibs["rocm_v5"], res[0])
  28. assert.Equal(t, availableDynLibs["rocm_v6"], res[1])
  29. assert.Equal(t, availableDynLibs["cpu"+variant], res[2])
  30. res = getDynLibs(gpu.GpuInfo{Library: "rocm", Variant: "v6"})
  31. assert.Len(t, res, 3)
  32. assert.Equal(t, availableDynLibs["rocm_v6"], res[0])
  33. assert.Equal(t, availableDynLibs["rocm_v5"], res[1])
  34. assert.Equal(t, availableDynLibs["cpu"+variant], res[2])
  35. res = getDynLibs(gpu.GpuInfo{Library: "cuda"})
  36. assert.Len(t, res, 1)
  37. assert.Equal(t, availableDynLibs["cpu"+variant], res[0])
  38. res = getDynLibs(gpu.GpuInfo{Library: "default"})
  39. assert.Len(t, res, 1)
  40. assert.Equal(t, "default", res[0])
  41. availableDynLibs = map[string]string{
  42. "rocm": "X_rocm_v5",
  43. "cpu" + variant: "X_cpu",
  44. }
  45. assert.Equal(t, true, rocmDynLibPresent())
  46. res = getDynLibs(gpu.GpuInfo{Library: "rocm", Variant: "v6"})
  47. assert.Len(t, res, 2)
  48. assert.Equal(t, availableDynLibs["rocm"], res[0])
  49. assert.Equal(t, availableDynLibs["cpu"+variant], res[1])
  50. }