/ nix / checks / scripts / test-lib-nv-utils.bash
test-lib-nv-utils.bash
  1  #!/usr/bin/env bash
  2  # Test NVIDIA GPU utility functions
  3  
  4  echo "Testing NVIDIA GPU utility functions..."
  5  
  6  # Test capability-to-arch conversions
  7  echo "Testing capability-to-arch..."
  8  
  9  # Volta
 10  if [ "@cap70@" != "volta" ]; then
 11    echo "x FAILED: capability-to-arch 7.0"
 12    exit 1
 13  fi
 14  echo "v 7.0 -> volta"
 15  
 16  # Turing
 17  if [ "@cap75@" != "turing" ]; then
 18    echo "x FAILED: capability-to-arch 7.5"
 19    exit 1
 20  fi
 21  echo "v 7.5 -> turing"
 22  
 23  # Ampere (8.0)
 24  if [ "@cap80@" != "ampere" ]; then
 25    echo "x FAILED: capability-to-arch 8.0"
 26    exit 1
 27  fi
 28  echo "v 8.0 -> ampere"
 29  
 30  # Ada
 31  if [ "@cap89@" != "ada" ]; then
 32    echo "x FAILED: capability-to-arch 8.9"
 33    exit 1
 34  fi
 35  echo "v 8.9 -> ada"
 36  
 37  # Hopper
 38  if [ "@cap90@" != "hopper" ]; then
 39    echo "x FAILED: capability-to-arch 9.0"
 40    exit 1
 41  fi
 42  echo "v 9.0 -> hopper"
 43  
 44  # Blackwell (10.0)
 45  if [ "@cap100@" != "blackwell" ]; then
 46    echo "x FAILED: capability-to-arch 10.0"
 47    exit 1
 48  fi
 49  echo "v 10.0 -> blackwell"
 50  
 51  # Blackwell (12.0)
 52  if [ "@cap120@" != "blackwell" ]; then
 53    echo "x FAILED: capability-to-arch 12.0"
 54    exit 1
 55  fi
 56  echo "v 12.0 -> blackwell"
 57  
 58  # Test supports-fp8
 59  echo ""
 60  echo "Testing supports-fp8..."
 61  
 62  # Ada (8.9) should NOT support FP8
 63  if [ "@fp8cap89@" != "false" ]; then
 64    echo "x FAILED: supports-fp8 8.9 should be false"
 65    exit 1
 66  fi
 67  echo "v 8.9 does NOT support FP8"
 68  
 69  # Hopper (9.0) should support FP8
 70  if [ "@fp8cap90@" != "true" ]; then
 71    echo "x FAILED: supports-fp8 9.0 should be true"
 72    exit 1
 73  fi
 74  echo "v 9.0 supports FP8"
 75  
 76  # Blackwell (12.0) should support FP8
 77  if [ "@fp8cap120@" != "true" ]; then
 78    echo "x FAILED: supports-fp8 12.0 should be true"
 79    exit 1
 80  fi
 81  echo "v 12.0 supports FP8"
 82  
 83  # Test supports-nvfp4
 84  echo ""
 85  echo "Testing supports-nvfp4..."
 86  
 87  # Hopper (9.0) should NOT support NVFP4
 88  if [ "@nvfp4cap90@" != "false" ]; then
 89    echo "x FAILED: supports-nvfp4 9.0 should be false"
 90    exit 1
 91  fi
 92  echo "v 9.0 does NOT support NVFP4"
 93  
 94  # Blackwell (12.0) should support NVFP4
 95  if [ "@nvfp4cap120@" != "true" ]; then
 96    echo "x FAILED: supports-nvfp4 12.0 should be true"
 97    exit 1
 98  fi
 99  echo "v 12.0 supports NVFP4"
100  
101  # Test nvcc-flags
102  echo ""
103  echo "Testing nvcc-flags..."
104  
105  flags="@nvccFlags@"
106  expected="-gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_90,code=sm_90"
107  if [ "$flags" != "$expected" ]; then
108    echo "x FAILED: nvcc-flags"
109    echo "  Got: $flags"
110    echo "  Expected: $expected"
111    exit 1
112  fi
113  echo "v nvcc-flags generates correct flags"
114  
115  mkdir -p "$out"
116  echo "SUCCESS" >"$out/SUCCESS"
117  echo "All NVIDIA GPU utility function tests passed" >>"$out/SUCCESS"