isolated_device_const.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Copyright 2019 Yunion
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package compute
  15. const (
  16. DIRECT_PCI_TYPE = "PCI"
  17. GPU_HPC_TYPE = "GPU-HPC" // # for compute
  18. GPU_VGA_TYPE = "GPU-VGA" // # for display
  19. SRIOV_VGPU_TYPE = "SRIOV-VGPU"
  20. LEGACY_VGPU_TYPE = "LEGACY-VGPU"
  21. USB_TYPE = "USB"
  22. NIC_TYPE = "NIC" // nic sriov
  23. NVME_PT_TYPE = "NVME-PT" // nvme passthrough
  24. NVIDIA_VENDOR_ID = "10de"
  25. AMD_VENDOR_ID = "1002"
  26. )
  27. var VALID_GPU_TYPES = []string{GPU_HPC_TYPE, GPU_VGA_TYPE}
  28. var VALID_ATTACH_TYPES = []string{GPU_HPC_TYPE, GPU_VGA_TYPE, USB_TYPE, SRIOV_VGPU_TYPE, LEGACY_VGPU_TYPE}
  29. var VALID_CONTAINER_DEVICE_TYPES = []string{
  30. CONTAINER_DEV_CPH_AMD_GPU, CONTAINER_DEV_CPH_AOSP_BINDER, CONTAINER_DEV_NETINT_CA_QUADRA,
  31. CONTAINER_DEV_NETINT_CA_ASIC, CONTAINER_DEV_NVIDIA_GPU, CONTAINER_DEV_NVIDIA_MPS, CONTAINER_DEV_NVIDIA_GPU_SHARE,
  32. CONTAINER_DEV_ASCEND_NPU, CONTAINER_DEV_VASTAITECH_GPU,
  33. }
  34. var VALID_PASSTHROUGH_TYPES = []string{
  35. DIRECT_PCI_TYPE, USB_TYPE, NIC_TYPE, GPU_HPC_TYPE,
  36. GPU_VGA_TYPE, NVME_PT_TYPE, SRIOV_VGPU_TYPE, LEGACY_VGPU_TYPE,
  37. }
  38. var VITRUAL_DEVICE_TYPES = []string{
  39. LEGACY_VGPU_TYPE,
  40. CONTAINER_DEV_CPH_AMD_GPU,
  41. CONTAINER_DEV_CPH_AOSP_BINDER,
  42. CONTAINER_DEV_NETINT_CA_QUADRA,
  43. CONTAINER_DEV_NETINT_CA_ASIC,
  44. CONTAINER_DEV_NVIDIA_MPS,
  45. CONTAINER_DEV_ASCEND_NPU,
  46. CONTAINER_DEV_NVIDIA_GPU_SHARE,
  47. CONTAINER_DEV_VASTAITECH_GPU,
  48. }
  49. var ID_VENDOR_MAP = map[string]string{
  50. NVIDIA_VENDOR_ID: "NVIDIA",
  51. AMD_VENDOR_ID: "AMD",
  52. }
  53. var VENDOR_ID_MAP = map[string]string{
  54. "NVIDIA": NVIDIA_VENDOR_ID,
  55. "AMD": AMD_VENDOR_ID,
  56. }
  57. const (
  58. ISOLATED_DEVICE_MODEL_METADATA_BANDWIDTH = "bandwidth"
  59. ISOLATED_DEVICE_MODEL_METADATA_MEMORY_MB = "memory_mb"
  60. ISOLATED_DEVICE_MODEL_METADATA_TFLOPS = "tflops"
  61. )
  62. func init() {
  63. VALID_PASSTHROUGH_TYPES = append(VALID_PASSTHROUGH_TYPES, VALID_CONTAINER_DEVICE_TYPES...)
  64. VALID_ATTACH_TYPES = append(VALID_ATTACH_TYPES, VALID_CONTAINER_DEVICE_TYPES...)
  65. }