payload_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. availableDynLibs = map[string]string{
  16. "rocm_v5": "X_rocm_v5",
  17. "rocm_v6": "X_rocm_v6",
  18. "cpu": "X_cpu",
  19. }
  20. assert.Equal(t, true, rocmDynLibPresent())
  21. res = getDynLibs(gpu.GpuInfo{Library: "rocm"})
  22. assert.Len(t, res, 3)
  23. assert.Equal(t, availableDynLibs["rocm_v5"], res[0])
  24. assert.Equal(t, availableDynLibs["rocm_v6"], res[1])
  25. assert.Equal(t, availableDynLibs["cpu"], res[2])
  26. res = getDynLibs(gpu.GpuInfo{Library: "rocm", Variant: "v6"})
  27. assert.Len(t, res, 3)
  28. assert.Equal(t, availableDynLibs["rocm_v6"], res[0])
  29. assert.Equal(t, availableDynLibs["rocm_v5"], res[1])
  30. assert.Equal(t, availableDynLibs["cpu"], res[2])
  31. res = getDynLibs(gpu.GpuInfo{Library: "cuda"})
  32. assert.Len(t, res, 1)
  33. assert.Equal(t, availableDynLibs["cpu"], res[0])
  34. res = getDynLibs(gpu.GpuInfo{Library: "default"})
  35. assert.Len(t, res, 1)
  36. assert.Equal(t, "default", res[0])
  37. availableDynLibs = map[string]string{
  38. "rocm": "X_rocm_v5",
  39. "cpu": "X_cpu",
  40. }
  41. assert.Equal(t, true, rocmDynLibPresent())
  42. res = getDynLibs(gpu.GpuInfo{Library: "rocm", Variant: "v6"})
  43. assert.Len(t, res, 2)
  44. assert.Equal(t, availableDynLibs["rocm"], res[0])
  45. assert.Equal(t, availableDynLibs["cpu"], res[1])
  46. }