gpu/cuda: add NVIDIA GPU H100
PATCH 1/9 gpu/cuda: add NVIDIA GPU H100
From: Elena Agostini <[email protected]>
Add support for new NVIDIA GPU H100.
--- drivers/gpu/cuda/cuda.c | 4 ++++ drivers/gpu/cuda/devices.h | 1 + 2 files changed, 5 insertions(+)
drivers/gpu/cuda/cuda.c +4 -0
@@ -63,6 +63,10 @@ RTE_LOG_REGISTER_DEFAULT(cuda_logtype, NOTICE);/* NVIDIA GPU address map */ static const struct rte_pci_id pci_id_cuda_map[] = { + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_80GB_DEVICE_ID ) + }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_A40_DEVICE_ID )
drivers/gpu/cuda/devices.h +1 -0
@@ -10,6 +10,7 @@/* NVIDIA GPU device IDs */ +#define NVIDIA_GPU_H100_80GB_DEVICE_ID (0x2313)#define NVIDIA_GPU_A40_DEVICE_ID (0x2235)#define NVIDIA_GPU_A30_24GB_DEVICE_ID (0x20b7)#define NVIDIA_GPU_A30X_24GB_DPU_DEVICE_ID (0x20b9)
Signature · 1 line
2.48.1
PATCH 2/9 gpu/cuda: new RoyB A100T GPU ID
From: Elena Agostini <[email protected]>
--- drivers/gpu/cuda/cuda.c | 8 ++++++++ drivers/gpu/cuda/devices.h | 2 ++ 2 files changed, 10 insertions(+)
drivers/gpu/cuda/cuda.c +8 -0
@@ -123,6 +123,14 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_GA100_PG506_217 ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_GA100_80GB_ROYB_EB1_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_GA100_80GB_ROYB_DEVICE_ID ) + }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_V100_16GB_SXM2_DEVICE_ID )
drivers/gpu/cuda/devices.h +2 -0
@@ -27,6 +27,8 @@#define NVIDIA_GPU_GA100_PG506_207 (0x20f0)#define NVIDIA_GPU_GA100_PCIE (0x20f1)#define NVIDIA_GPU_GA100_PG506_217 (0x20f2) +#define NVIDIA_GPU_GA100_80GB_ROYB_EB1_DEVICE_ID (0x20f5) +#define NVIDIA_GPU_GA100_80GB_ROYB_DEVICE_ID (0x20fd)#define NVIDIA_GPU_V100_16GB_SXM2_DEVICE_ID (0x1db1)#define NVIDIA_GPU_V100_16GB_DGXS_DEVICE_ID (0x1db2)
Signature · 1 line
2.48.1
PATCH 3/9 New NVIDIA GPU Hopper device ID on Grace
In reply to Gregory EtelsonFrom: Elena Agostini <[email protected]>
--- drivers/gpu/cuda/cuda.c | 4 ++++ drivers/gpu/cuda/devices.h | 2 ++ 2 files changed, 6 insertions(+)
drivers/gpu/cuda/cuda.c +4 -0
@@ -251,6 +251,10 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_T4 ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_HOPPER_GRACE ) + }, { .device_id = 0 }
drivers/gpu/cuda/devices.h +2 -0
@@ -68,4 +68,6 @@#define NVIDIA_GPU_T4G (0x1eb4)#define NVIDIA_GPU_T4 (0x1eb8) +#define NVIDIA_GPU_HOPPER_GRACE (0x2342) +#endif /* CUDA_DEVICES_H */
Signature · 1 line
2.48.1
PATCH 4/9 gpu/cuda: add new Hopper GPU IDs
In reply to Gregory EtelsonFrom: Elena Agostini <[email protected]>
Add a new NVIDIA Hopper GPU IDs.
--- drivers/gpu/cuda/cuda.c | 8 ++++++++ drivers/gpu/cuda/devices.h | 2 ++ 2 files changed, 10 insertions(+)
drivers/gpu/cuda/cuda.c +8 -0
@@ -255,6 +255,14 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_HOPPER_GRACE ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_GH1_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_GH3_DEVICE_ID ) + }, { .device_id = 0 }
drivers/gpu/cuda/devices.h +2 -0
@@ -69,5 +69,7 @@#define NVIDIA_GPU_T4 (0x1eb8)#define NVIDIA_GPU_HOPPER_GRACE (0x2342) +#define NVIDIA_GPU_H100_GH1_DEVICE_ID (0x2342) +#define NVIDIA_GPU_H100_GH3_DEVICE_ID (0x237e)#endif /* CUDA_DEVICES_H */
Signature · 1 line
2.48.1
PATCH 5/9 gpu/cuda: add new gpu hopper 80gb device id
In reply to Gregory EtelsonFrom: Elena Agostini <[email protected]>
Added the new Hopper 80GB GPU device ID to the list.
--- drivers/gpu/cuda/cuda.c | 12 ++++++++---- drivers/gpu/cuda/devices.h | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-)
drivers/gpu/cuda/cuda.c +8 -4
@@ -63,10 +63,6 @@ RTE_LOG_REGISTER_DEFAULT(cuda_logtype, NOTICE);/* NVIDIA GPU address map */ static const struct rte_pci_id pci_id_cuda_map[] = { - { -RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_80GB_DEVICE_ID ) - }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_A40_DEVICE_ID )
@@ -263,6 +259,14 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_H100_GH3_DEVICE_ID ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_80GB_DEVICE_ID_1 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_80GB_DEVICE_ID_2 ) + }, { .device_id = 0 }
drivers/gpu/cuda/devices.h +2 -1
@@ -10,7 +10,6 @@/* NVIDIA GPU device IDs */ -#define NVIDIA_GPU_H100_80GB_DEVICE_ID (0x2313)#define NVIDIA_GPU_A40_DEVICE_ID (0x2235)#define NVIDIA_GPU_A30_24GB_DEVICE_ID (0x20b7)#define NVIDIA_GPU_A30X_24GB_DPU_DEVICE_ID (0x20b9)
@@ -71,5 +70,7 @@#define NVIDIA_GPU_HOPPER_GRACE (0x2342)#define NVIDIA_GPU_H100_GH1_DEVICE_ID (0x2342)#define NVIDIA_GPU_H100_GH3_DEVICE_ID (0x237e) +#define NVIDIA_GPU_H100_80GB_DEVICE_ID_1 (0x2331) +#define NVIDIA_GPU_H100_80GB_DEVICE_ID_2 (0x2313)#endif /* CUDA_DEVICES_H */
Signature · 1 line
2.48.1
PATCH 6/9 gpu/cuda: more gpu ID for h100 and l40
In reply to Gregory EtelsonFrom: Elena Agostini <[email protected]>
More gpu devices for h100 and l40
--- drivers/gpu/cuda/cuda.c | 66 ++++++++++++++++++++++++++++++++++---- drivers/gpu/cuda/devices.h | 23 ++++++++++--- 2 files changed, 78 insertions(+), 11 deletions(-)
drivers/gpu/cuda/cuda.c +59 -7
@@ -87,6 +87,10 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_A10M_DEVICE_ID ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_A800_DEVICE_ID ) + }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_A100_40GB_SXM4_DEVICE_ID )
@@ -121,11 +125,23 @@ static const struct rte_pci_id pci_id_cuda_map[] = { }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GA100_80GB_ROYB_EB1_DEVICE_ID ) +NVIDIA_GPU_A800_80GB_SXM_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_A800_80GB_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_A800_40GB_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_A800_80GB_ROYB_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GA100_80GB_ROYB_DEVICE_ID ) +NVIDIA_GPU_GA100_80GB_ROYB_DEVICE_ID ) }, { RTE_PCI_DEVICE(NVIDIA_GPU_VENDOR_ID,
@@ -249,23 +265,59 @@ static const struct rte_pci_id pci_id_cuda_map[] = { }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_HOPPER_GRACE ) +NVIDIA_GPU_H100_GH1_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_GH1_DEVICE_ID ) +NVIDIA_GPU_H100_GH3_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_GH3_DEVICE_ID ) +NVIDIA_GPU_H100L_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100XM_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_PCIE_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_GENERIC_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H100_80GB_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H800_PCIE_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H800_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_H800L_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_L40_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_L40S_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_80GB_DEVICE_ID_1 ) +NVIDIA_GPU_L40G_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_80GB_DEVICE_ID_2 ) +NVIDIA_GPU_L4_DEVICE_ID ) }, { .device_id =0
drivers/gpu/cuda/devices.h +19 -4
@@ -16,6 +16,7 @@#define NVIDIA_GPU_A10_24GB_DEVICE_ID (0x2236)#define NVIDIA_GPU_A10G_DEVICE_ID (0x2237)#define NVIDIA_GPU_A10M_DEVICE_ID (0x2238) +#define NVIDIA_GPU_A800_DEVICE_ID (0x2238)#define NVIDIA_GPU_A100_40GB_SXM4_DEVICE_ID (0x20b0)#define NVIDIA_GPU_A100_40GB_PCIE_DEVICE_ID (0x20b1)
@@ -26,7 +27,10 @@#define NVIDIA_GPU_GA100_PG506_207 (0x20f0)#define NVIDIA_GPU_GA100_PCIE (0x20f1)#define NVIDIA_GPU_GA100_PG506_217 (0x20f2) -#define NVIDIA_GPU_GA100_80GB_ROYB_EB1_DEVICE_ID (0x20f5) +#define NVIDIA_GPU_A800_80GB_SXM_DEVICE_ID (0x20f3) +#define NVIDIA_GPU_A800_80GB_DEVICE_ID (0x20f5) +#define NVIDIA_GPU_A800_40GB_DEVICE_ID (0x20f6) +#define NVIDIA_GPU_A800_80GB_ROYB_DEVICE_ID (0x20bd)#define NVIDIA_GPU_GA100_80GB_ROYB_DEVICE_ID (0x20fd)#define NVIDIA_GPU_V100_16GB_SXM2_DEVICE_ID (0x1db1)
@@ -67,10 +71,21 @@#define NVIDIA_GPU_T4G (0x1eb4)#define NVIDIA_GPU_T4 (0x1eb8) -#define NVIDIA_GPU_HOPPER_GRACE (0x2342)#define NVIDIA_GPU_H100_GH1_DEVICE_ID (0x2342)#define NVIDIA_GPU_H100_GH3_DEVICE_ID (0x237e) -#define NVIDIA_GPU_H100_80GB_DEVICE_ID_1 (0x2331) -#define NVIDIA_GPU_H100_80GB_DEVICE_ID_2 (0x2313) +#define NVIDIA_GPU_H100L_DEVICE_ID (0x2321) +#define NVIDIA_GPU_H100XM_DEVICE_ID (0x2330) +#define NVIDIA_GPU_H100_PCIE_DEVICE_ID (0x2331) +#define NVIDIA_GPU_H100_GENERIC_DEVICE_ID (0x2339) +#define NVIDIA_GPU_H100_80GB_DEVICE_ID (0x2313) +#define NVIDIA_GPU_H800_PCIE_DEVICE_ID (0x2322) +#define NVIDIA_GPU_H800_DEVICE_ID (0x2324) +#define NVIDIA_GPU_H800L_DEVICE_ID (0x233a) + +#define NVIDIA_GPU_L40_DEVICE_ID (0x26b5) +#define NVIDIA_GPU_L40S_DEVICE_ID (0x26b9) +#define NVIDIA_GPU_L40G_DEVICE_ID (0x26b8) + +#define NVIDIA_GPU_L4_DEVICE_ID (0x27b8)#endif /* CUDA_DEVICES_H */
Signature · 1 line
2.48.1
Re: [PATCH 6/9] gpu/cuda: more gpu ID for h100 and l40
Tested with H100 (device ID 0x2331). Confirmed GPU detection and memory allocation. Still building my program, but no issues so far. Happy to help test further to get these patches approved.
PATCH 7/9 gpu/cuda: extend NVIDIA GPU device ID list
In reply to Gregory EtelsonFrom: eagostini <[email protected]>
Add new NVIDIA GPU IDs taken from public driver list.
https://github.com/NVIDIA/open-gpu-kernel-modules/blob/e45d91de0224e17a6bf7c971d8f165090b3c07a6/src/nvidia/generated/g_nv_name_released.h
--- drivers/gpu/cuda/cuda.c | 240 +++++++++++++++++++++++++++---------- drivers/gpu/cuda/devices.h | 151 ++++++++++++----------- 2 files changed, 264 insertions(+), 127 deletions(-)
drivers/gpu/cuda/cuda.c +180 -60
@@ -65,35 +65,79 @@ RTE_LOG_REGISTER_DEFAULT(cuda_logtype, NOTICE);static const struct rte_pci_id pci_id_cuda_map[] = { {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A40_DEVICE_ID ) +NVIDIA_GPU_M40_24GB ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A30_24GB_DEVICE_ID ) +NVIDIA_GPU_V100_32GB_SXM3_H_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A30X_24GB_DPU_DEVICE_ID ) +NVIDIA_GPU_TITAN_V_CEO_ED ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_TITAN_Xp_COLLECTORS_EDITION) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_SXM2_16GB_LS ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_16GB_DGXS_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_16GB_FHHL_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_PCIE_16GB_LS ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_SXM2_32GB_LS ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_32GB_PCIE_DEVICE_ID ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_32GB_DGXS_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A10_24GB_DEVICE_ID ) +NVIDIA_GPU_V100_SXM3_32GB_H ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A10G_DEVICE_ID ) +NVIDIA_TITAN_V_JHH_SE ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A10M_DEVICE_ID ) +NVIDIA_T1000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A800_DEVICE_ID ) +NVIDIA_T600 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A100_40GB_SXM4_DEVICE_ID ) +NVIDIA_T400 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_T1000_8GB ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_T400_4GB ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_A100_PG509_200 ) }, { RTE_PCI_DEVICE(NVIDIA_GPU_VENDOR_ID,
@@ -101,23 +145,39 @@ static const struct rte_pci_id pci_id_cuda_map[] = { }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A100_80GB_SXM4_DEVICE_ID ) +NVIDIA_A100_SXM4_80GB ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_A100_SXM_64GB ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A100_80GB_PCIE_DEVICE_ID ) + NVIDIA_A100_80GB_PCIe) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_PG506_232 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_A30 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_A100X_80GB_DPU_DEVICE_ID ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_A30X_24GB_DPU_DEVICE_ID ) + }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_GPU_GA100_PG506_207 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GA100_PCIE ) +NVIDIA_A100_PCIE_40GB ) }, { RTE_PCI_DEVICE(NVIDIA_GPU_VENDOR_ID,
@@ -125,199 +185,259 @@ static const struct rte_pci_id pci_id_cuda_map[] = { }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A800_80GB_SXM_DEVICE_ID ) +NVIDIA_A800_SXM4_80GB ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A800_80GB_DEVICE_ID ) + NVIDIA_A800_80GB_PCIe) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A800_40GB_DEVICE_ID ) + NVIDIA_A800_40GB_Active) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_A800_80GB_ROYB_DEVICE_ID ) +NVIDIA_A800_SXM4_40GB ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GA100_80GB_ROYB_DEVICE_ID ) +NVIDIA_AX800 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_16GB_SXM2_DEVICE_ID ) +NVIDIA_GPU_QUADRO_RTX_6000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_16GB_DGXS_DEVICE_ID ) +NVIDIA_GPU_QUADRO_RTX_8000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_16GB_FHHL_DEVICE_ID ) +NVIDIA_RTX_A6000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_16GB_PCIE_DEVICE_ID ) +NVIDIA_RTX_A5000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_32GB_SXM2_DEVICE_ID ) +NVIDIA_RTX_A4500 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_32GB_PCIE_DEVICE_ID ) +NVIDIA_RTX_A4500_LAPTOP ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_32GB_DGXS_DEVICE_ID ) +NVIDIA_RTX_A4500_EMBEDDED ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_32GB_SXM3_DEVICE_ID ) +NVIDIA_RTX_A5500 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_32GB_SXM3_H_DEVICE_ID ) +NVIDIA_A40 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100_SXM2 ) +NVIDIA_A10 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_V100S_PCIE ) +NVIDIA_A10G ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_TITAN_V_CEO_ED ) +NVIDIA_A10M ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GV100GL_PG500_216 ) +NVIDIA_H100_NVL ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GV100GL_PG503_216 ) + NVIDIA_H800_PCIe) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_TU102_TITAN_RTX ) +NVIDIA_H800 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_TU102GL_QUADRO_RTX ) +NVIDIA_H20 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_GV100_QUADRO_DEVICE_ID ) +NVIDIA_H100_80GB_HBM3 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_4000 ) + NVIDIA_H100_PCIe) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_5000 ) +NVIDIA_GPU_H100_80GB_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_6000 ) +NVIDIA_H200 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_8000 ) +NVIDIA_H100 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_H800_NVL ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A4000 ) +NVIDIA_GH200_120GB ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A6000 ) +NVIDIA_GPU_H100_GH3_DEVICE_ID ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A5000 ) +NVIDIA_RTX_A4000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A4500 ) +NVIDIA_RTX_A4000H ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A5500 ) +NVIDIA_RTX_A2000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A2000 ) +NVIDIA_RTX_A2000_12GB ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_QUADRO_RTX_A2000_12GB ) +NVIDIA_RTX_A1000 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_T4G ) +NVIDIA_RTX_A400 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_T4 ) +NVIDIA_A16 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_GH1_DEVICE_ID ) +NVIDIA_RTX_6000_ADA ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_GH3_DEVICE_ID ) +NVIDIA_RTX_5000_ADA ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_RTX_5880_ADA ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_L40 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_L40G_1B ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_L40S ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_L20 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_RTX_4000_SFF_ADA ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100L_DEVICE_ID ) +NVIDIA_RTX_4500_ADA ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100XM_DEVICE_ID ) +NVIDIA_RTX_4000_ADA ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_PCIE_DEVICE_ID ) +NVIDIA_L2 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_GENERIC_DEVICE_ID ) +NVIDIA_L4 ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H100_80GB_DEVICE_ID ) +NVIDIA_RTX_2000_ADA ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H800_PCIE_DEVICE_ID ) +NVIDIA_GPU_GRID_M10_0B ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H800_DEVICE_ID ) +NVIDIA_GPU_GRID_V100L_1B ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_H800L_DEVICE_ID ) +NVIDIA_GPU_GV100GL_PG500_216 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_GV100GL_PG503_216 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_V100_SXM2 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_GRID_V100S_1B ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_L40_DEVICE_ID ) +NVIDIA_GPU_GRID_RTX6000_1Q ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_L40S_DEVICE_ID ) +NVIDIA_GPU_GRID_RTX_T10_4 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_GRID_RTX6000P_1B ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_TU102_TITAN_RTX ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_QUADRO_RTX_4000 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_QUADRO_RTX_5000 ) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , +NVIDIA_GPU_T4G ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_L40G_DEVICE_ID ) +NVIDIA_GPU_GRID_T4_1B ) }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_GPU_L4_DEVICE_ID ) +NVIDIA_H100XS_1_8CME ) }, { .device_id =0
drivers/gpu/cuda/devices.h +84 -67
166 lines not on this page · raw message
Signature · 1 line
2.48.1
Re: [PATCH 7/9] gpu/cuda: extend NVIDIA GPU device ID list
15/09/2025 16:41, Gregory Etelson:
Quoted 4 lines
From: eagostini <[email protected]>
Add new NVIDIA GPU IDs taken from public driver list.
https://github.com/NVIDIA/open-gpu-kernel-modules/blob/e45d91de0224e17a6bf7c971d8f165090b3c07a6/src/nvidia/generated/g_nv_name_released.h
It is not synchronized.
For instance, there are new Blackwell, H20, etc.
I feel we can scratch all these patches and do 1 well synchronized, and documenting a sync command as code comment.
Re: [PATCH 7/9] gpu/cuda: extend NVIDIA GPU device ID list
Quoted 2 lines · Thomas Monjalon
I feel we can scratch all these patches and do 1 well synchronized, and documenting a sync command as code comment.
Agreed. I also noticed 0x1df6 in this patch is already present in main. I would be happy to submit a replacement patch doing a full sync with the NVIDIA open kernel modules device list if that is useful. Having the updated device IDs for this driver would really help.
Maurice Green <[email protected]>
Re: [PATCH 7/9] gpu/cuda: extend NVIDIA GPU device ID list
04/03/2026 14:28, Maurice Green:
Quoted 10 lines · Thomas Monjalon
Quoted 2 lines
I feel we can scratch all these patches and do 1 well synchronized, and documenting a sync command as code comment.
Agreed. I also noticed
0x1df6in this patch is already present in main. I would be happy to submit a replacement patch doing a full sync with the NVIDIA open kernel modules device list if that is useful. Having the updated device IDs for this driver would really help.Maurice Green <[email protected]>
I had started to work on it.
An abstract to see how it looks like:
+#define NVIDIA_GPU_GV100GL_TESLA_SXM2_16 0x1db0 /* Tesla V100 SXM2 16GB */ +#define NVIDIA_GPU_GV100GL_TESLA_SXM2_16_LS 0x1db1 /* Tesla V100 SXM2 16GB LS / GRID V100X */ +#define NVIDIA_GPU_GV100GL_TESLA_DGXS_16 0x1db2 /* Tesla V100 DGXS 16GB */ +#define NVIDIA_GPU_GV100GL_TESLA_FHHL_16 0x1db3 /* Tesla V100 FHHL 16GB / GRID V100L */ +#define NVIDIA_GPU_GV100GL_TESLA_PCIE_16_LS 0x1db4 /* Tesla V100 PCIe 16GB LS / GRID V100 */ +#define NVIDIA_GPU_GV100GL_TESLA_SXM2_32_LS 0x1db5 /* Tesla V100 SXM2 32GB LS / GRID V100DX */ +#define NVIDIA_GPU_GV100GL_TESLA_PCIE_32 0x1db6 /* Tesla V100 PCIe 32GB / GRID V100D */ +#define NVIDIA_GPU_GV100GL_TESLA_DGXS_32 0x1db7 /* Tesla V100 DGXS 32GB */ +#define NVIDIA_GPU_GV100GL_TESLA_SXM3_32_H 0x1db8 /* Tesla V100 SXM3 32GB H */
And others with partial name:
+#define NVIDIA_GPU_GA100 0x20b8 /* A100X 80GB DPU */ +#define NVIDIA_GPU_GA100 0x20b9 /* A30X 24GB DPU */ +#define NVIDIA_GPU_GA100 0x20bb /* DRIVE A100 PROD */ +#define NVIDIA_GPU_GA100 0x20bd /* A800 SXM4 40GB */ +#define NVIDIA_GPU_GA100 0x20be /* GRID A100A */ +#define NVIDIA_GPU_GA100 0x20bf /* GRID A100B */ +#define NVIDIA_GPU_GA100 0x20c2 /* CMP 170HX */ +#define NVIDIA_GPU_GA100 0x20f0 /* A100 PG506-207 */ +#define NVIDIA_GPU_GA100 0x20f1 /* A100 PCIe 40GB / GRID A100 */ +#define NVIDIA_GPU_GA100 0x20f2 /* A100 PG506-217 */ +#define NVIDIA_GPU_GA100 0x20f3 /* A800 SXM4 80GB / GRID A800DX */ +#define NVIDIA_GPU_GA100 0x20f5 /* A800 80GB PCIe / GRID A800D */ +#define NVIDIA_GPU_GA100 0x20f6 /* A800 40GB PCIe / GRID A800 */ +#define NVIDIA_GPU_GA100 0x20fd /* AX800 Converged Accelerator */ [...] +#define NVIDIA_GPU_GH100 0x232c /* H20 HBM3e */ +#define NVIDIA_GPU_GH100 0x2330 /* H100 SXM5 80GB */ +#define NVIDIA_GPU_GH100 0x2331 /* H100 PCIe */ +#define NVIDIA_GPU_GH100 0x2335 /* H200 SXM 141GB */
As you can see it requires knowledge to get the right name for each ID.
Not everything is in https://pci-ids.ucw.cz/
https://github.com/NVIDIA/open-gpu-kernel-modules is a good source but not perfect as well.
Re: [PATCH 7/9] gpu/cuda: extend NVIDIA GPU device ID list
Quoted 5 lines
+#define
NVIDIA_GPU_GH1000x2335/* H200 SXM 141GB */As you can see it requires knowledge to get the right name for each ID.
Not everything is in https://pci-ids.ucw.cz/
https://github.com/NVIDIA/open-gpu-kernel-modules is a good source but not perfect as well.
Right, the naming is a little tricky since neither source is fully complete. I wrote a sync script that cross-references the PCI ID DB and OKM repo to construct unique macro names. For the few entries with totally identical descriptions across both sources, the device ID is appended as a fallback. Here is an example for the GH100 family:
#define NVIDIA_GPU_GH100_H20 0x2329 /* H20 */ #define NVIDIA_GPU_GH100_H20_HBM3E 0x232c /* H20 HBM3e */ #define NVIDIA_GPU_GH100_H100_SXM5_80GB 0x2330 /* H100 SXM5 80GB */ #define NVIDIA_GPU_GH100_H100_PCIE 0x2331 /* H100 PCIe */ #define NVIDIA_GPU_GH100_H200_SXM_141GB 0x2335 /* H200 SXM 141GB */ #define NVIDIA_GPU_GH100_H100 0x2336 /* H100 */
The script also updates pci_id_cuda_map[] in cuda.c and I wrote a test to verify both files are consistent.
Re: [PATCH 7/9] gpu/cuda: extend NVIDIA GPU device ID list
04/03/2026 23:50, Maurice Green:
Quoted 12 lines
Quoted 5 lines
+#define
NVIDIA_GPU_GH1000x2335/* H200 SXM 141GB */As you can see it requires knowledge to get the right name for each ID.
Not everything is in https://pci-ids.ucw.cz/
https://github.com/NVIDIA/open-gpu-kernel-modules is a good source but not perfect as well.Right, the naming is a little tricky since neither source is fully complete. I wrote a sync script that cross-references the PCI ID DB and OKM repo to construct unique macro names. For the few entries with totally identical descriptions across both sources, the device ID is appended as a fallback. Here is an example for the GH100 family:
Quoted 6 lines
#define NVIDIA_GPU_GH100_H20 0x2329 /* H20 */ #define NVIDIA_GPU_GH100_H20_HBM3E 0x232c /* H20 HBM3e */ #define NVIDIA_GPU_GH100_H100_SXM5_80GB 0x2330 /* H100 SXM5 80GB */ #define NVIDIA_GPU_GH100_H100_PCIE 0x2331 /* H100 PCIe */ #define NVIDIA_GPU_GH100_H200_SXM_141GB 0x2335 /* H200 SXM 141GB */ #define NVIDIA_GPU_GH100_H100 0x2336 /* H100 */
That's interesting.
How do you suggest to fill the gaps in these databases?
PATCH 8/9 gpu/cuda: extend NVIDIA GPU device ID list
In reply to Gregory EtelsonFrom: eagostini <[email protected]>
Add more IDs for Laptop and Embedded GPUs.
--- drivers/gpu/cuda/cuda.c | 138 ++++++++++++++++++++++++++++++++++--- drivers/gpu/cuda/devices.h | 36 +++++++++- 2 files changed, 164 insertions(+), 10 deletions(-)
drivers/gpu/cuda/cuda.c +130 -8
@@ -223,14 +223,6 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_RTX_A4500 ) }, - { -RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_RTX_A4500_LAPTOP ) - }, - { -RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , -NVIDIA_RTX_A4500_EMBEDDED ) - }, {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_RTX_A5500 )
@@ -439,6 +431,136 @@ static const struct rte_pci_id pci_id_cuda_map[] = {RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID ,NVIDIA_H100XS_1_8CME ) }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_T600_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_T550_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_T600_Laptop_2) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_T1200_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A5500_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A5000_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A4000_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A3000_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A3000_12GB_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A4500_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A3000_12GB_Laptop_2) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A2000_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A1000_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A2000_8GB_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A500_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A1000_6GB_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A500_Laptop_2) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_5000_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_4000_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_3500_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_3000_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_2000_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_1000_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_500_Ada_Generation_Laptop) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_500_Ada_Generation_Laptop_2) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A4500_Embedded) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A1000_Embedded) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A2000_Embedded) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_A500_Embedded) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_5000_Ada_Generation_Embedded) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_3500_Ada_Generation_Embedded) + }, + { +RTE_PCI_DEVICE (NVIDIA_GPU_VENDOR_ID , + NVIDIA_RTX_2000_Ada_Generation_Embedded) + }, + + { .device_id =0 }
drivers/gpu/cuda/devices.h +34 -2
@@ -50,8 +50,6 @@#define NVIDIA_RTX_A6000 (0x2230)#define NVIDIA_RTX_A5000 (0x2231)#define NVIDIA_RTX_A4500 (0x2232) -#define NVIDIA_RTX_A4500_LAPTOP (0x24ba) -#define NVIDIA_RTX_A4500_EMBEDDED (0x24fa)#define NVIDIA_RTX_A5500 (0x2233)#define NVIDIA_A40 (0x2235)#define NVIDIA_A10 (0x2236)
@@ -105,4 +103,38 @@#define NVIDIA_GPU_GRID_T4_1B (0x1eb8)#define NVIDIA_H100XS_1_8CME (0x2337) +#define NVIDIA_T600_Laptop (0x1fb6) +#define NVIDIA_T550_Laptop (0x1fb7) +#define NVIDIA_T600_Laptop_2 (0x1fba) +#define NVIDIA_T1200_Laptop (0x1fbc) +#define NVIDIA_RTX_A5500_Laptop (0x2438) +#define NVIDIA_RTX_A5000_Laptop (0x24b6) +#define NVIDIA_RTX_A4000_Laptop (0x24b7) +#define NVIDIA_RTX_A3000_Laptop (0x24b8) +#define NVIDIA_RTX_A3000_12GB_Laptop (0x24b9) +#define NVIDIA_RTX_A4500_Laptop (0x24ba) +#define NVIDIA_RTX_A3000_12GB_Laptop_2 (0x24bb) +#define NVIDIA_RTX_A2000_Laptop (0x25b8) +#define NVIDIA_RTX_A1000_Laptop (0x25b9) +#define NVIDIA_RTX_A2000_8GB_Laptop (0x25ba) +#define NVIDIA_RTX_A500_Laptop (0x25bb) +#define NVIDIA_RTX_A1000_6GB_Laptop (0x25bc) +#define NVIDIA_RTX_A500_Laptop_2 (0x25bd) +#define NVIDIA_RTX_5000_Ada_Generation_Laptop (0x2730) +#define NVIDIA_RTX_4000_Ada_Generation_Laptop (0x27ba) +#define NVIDIA_RTX_3500_Ada_Generation_Laptop (0x27bb) +#define NVIDIA_RTX_3000_Ada_Generation_Laptop (0x2838) +#define NVIDIA_RTX_2000_Ada_Generation_Laptop (0x28b8) +#define NVIDIA_RTX_1000_Ada_Generation_Laptop (0x28b9) +#define NVIDIA_RTX_500_Ada_Generation_Laptop (0x28ba) +#define NVIDIA_RTX_500_Ada_Generation_Laptop_2 (0x28bb) + +#define NVIDIA_RTX_A4500_Embedded (0x24fa) +#define NVIDIA_RTX_A1000_Embedded (0x25f9) +#define NVIDIA_RTX_A2000_Embedded (0x25fa) +#define NVIDIA_RTX_A500_Embedded (0x25fb) +#define NVIDIA_RTX_5000_Ada_Generation_Embedded (0x2770) +#define NVIDIA_RTX_3500_Ada_Generation_Embedded (0x27fb) +#define NVIDIA_RTX_2000_Ada_Generation_Embedded (0x28f8) +#endif /* CUDA_DEVICES_H */
Signature · 1 line
2.48.1
PATCH 9/9 gpu/cuda: support CUDA 13 building
In reply to Gregory EtelsonFrom: Bing Zhao <[email protected]>
The API name and prototype have been changed in the new CUDA, this commit will ensure the compatibility with different versions.
--- drivers/gpu/cuda/cuda.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
drivers/gpu/cuda/cuda.c +23 -0
@@ -28,6 +28,28 @@ static CUresult CUDAAPI (*sym_cuGetProcAddress)(const char *symbol, void **pfn, int cudaVersion, uint64_t flags);/* CUDA Driver functions loaded with cuGetProcAddress for versioning */ +#if defined(CUDA_VERSION ) && (CUDA_VERSION >=13000 ) +static PFN_cuGetErrorString_v6000 pfn_cuGetErrorString; +static PFN_cuGetErrorName_v6000 pfn_cuGetErrorName; +static PFN_cuPointerSetAttribute_v6000 pfn_cuPointerSetAttribute; +static PFN_cuDeviceGetAttribute_v2000 pfn_cuDeviceGetAttribute; +static PFN_cuDeviceGetByPCIBusId_v4010 pfn_cuDeviceGetByPCIBusId; +static PFN_cuDevicePrimaryCtxRetain_v7000 pfn_cuDevicePrimaryCtxRetain; +static PFN_cuDevicePrimaryCtxRelease_v11000 pfn_cuDevicePrimaryCtxRelease; +static PFN_cuDeviceTotalMem_v3020 pfn_cuDeviceTotalMem; +static PFN_cuDeviceGetName_v2000 pfn_cuDeviceGetName; +static PFN_cuCtxGetApiVersion_v3020 pfn_cuCtxGetApiVersion; +static PFN_cuCtxSetCurrent_v4000 pfn_cuCtxSetCurrent; +static PFN_cuCtxGetCurrent_v4000 pfn_cuCtxGetCurrent; +static PFN_cuCtxGetDevice_v2000 pfn_cuCtxGetDevice; +static PFN_cuCtxGetExecAffinity_v11040 pfn_cuCtxGetExecAffinity; +static PFN_cuMemAlloc_v3020 pfn_cuMemAlloc; +static PFN_cuMemFree_v3020 pfn_cuMemFree; +static PFN_cuMemHostRegister_v6050 pfn_cuMemHostRegister; +static PFN_cuMemHostUnregister_v4000 pfn_cuMemHostUnregister; +static PFN_cuMemHostGetDevicePointer_v3020 pfn_cuMemHostGetDevicePointer; +static PFN_cuFlushGPUDirectRDMAWrites_v11030 pfn_cuFlushGPUDirectRDMAWrites; +#else static PFN_cuGetErrorString pfn_cuGetErrorString;static PFN_cuGetErrorName pfn_cuGetErrorName;static PFN_cuPointerSetAttribute pfn_cuPointerSetAttribute;
@@ -48,6 +70,7 @@ static PFN_cuMemHostRegister pfn_cuMemHostRegister;static PFN_cuMemHostUnregister pfn_cuMemHostUnregister;static PFN_cuMemHostGetDevicePointer pfn_cuMemHostGetDevicePointer;static PFN_cuFlushGPUDirectRDMAWrites pfn_cuFlushGPUDirectRDMAWrites; +#endif static void *cudalib;static unsigned int cuda_api_version;
Signature · 1 line
2.48.1
Re: [PATCH 9/9] gpu/cuda: support CUDA 13 building
15/09/2025 16:41, Gregory Etelson:
Quoted 4 lines
From: Bing Zhao <[email protected]>
The API name and prototype have been changed in the new CUDA, this commit will ensure the compatibility with different versions.
[...]
Quoted 15 lines
/* CUDA Driver functions loaded with cuGetProcAddress for versioning */
drivers/gpu/cuda/cuda.c +14
-0+#if defined(CUDA_VERSION ) && (CUDA_VERSION >=13000 ) +static PFN_cuGetErrorString_v6000 pfn_cuGetErrorString; +static PFN_cuGetErrorName_v6000 pfn_cuGetErrorName; +static PFN_cuPointerSetAttribute_v6000 pfn_cuPointerSetAttribute; +static PFN_cuDeviceGetAttribute_v2000 pfn_cuDeviceGetAttribute; +static PFN_cuDeviceGetByPCIBusId_v4010 pfn_cuDeviceGetByPCIBusId; +static PFN_cuDevicePrimaryCtxRetain_v7000 pfn_cuDevicePrimaryCtxRetain; +static PFN_cuDevicePrimaryCtxRelease_v11000 pfn_cuDevicePrimaryCtxRelease; +static PFN_cuDeviceTotalMem_v3020 pfn_cuDeviceTotalMem; +static PFN_cuDeviceGetName_v2000 pfn_cuDeviceGetName; +static PFN_cuCtxGetApiVersion_v3020 pfn_cuCtxGetApiVersion; +static PFN_cuCtxSetCurrent_v4000 pfn_cuCtxSetCurrent; +static PFN_cuCtxGetCurrent_v4000 pfn_cuCtxGetCurrent; +static PFN_cuCtxGetDevice_v2000 pfn_cuCtxGetDevice;
drivers/gpu/cuda/cuda.c static CUresult CUDAAPI (*sym_cuGetProcAddress)(const char *symbol, · line 54
Quoted 10 lines
drivers/gpu/cuda/cuda.c +8
-0+static PFN_cuCtxGetExecAffinity_v11040 pfn_cuCtxGetExecAffinity; +static PFN_cuMemAlloc_v3020 pfn_cuMemAlloc; +static PFN_cuMemFree_v3020 pfn_cuMemFree; +static PFN_cuMemHostRegister_v6050 pfn_cuMemHostRegister; +static PFN_cuMemHostUnregister_v4000 pfn_cuMemHostUnregister; +static PFN_cuMemHostGetDevicePointer_v3020 pfn_cuMemHostGetDevicePointer; +static PFN_cuFlushGPUDirectRDMAWrites_v11030 pfn_cuFlushGPUDirectRDMAWrites; +#else static PFN_cuGetErrorString pfn_cuGetErrorString;static PFN_cuGetErrorName pfn_cuGetErrorName;
What is the logic here?
The old version keeps its original name, and new versions have a suffix? Why not use the old version?
What will happen with next versions?
Thomas Monjalon
AppliedRe: [PATCH 9/9] gpu/cuda: support CUDA 13 building
17/09/2025 12:06, Thomas Monjalon:
Quoted 28 lines
15/09/2025 16:41, Gregory Etelson:
Quoted 4 lines
From: Bing Zhao <[email protected]>
The API name and prototype have been changed in the new CUDA, this commit will ensure the compatibility with different versions.
[...]
Quoted 22 lines
/* CUDA Driver functions loaded with cuGetProcAddress for versioning */
drivers/gpu/cuda/cuda.c +21
-0+#if defined(CUDA_VERSION ) && (CUDA_VERSION >=13000 ) +static PFN_cuGetErrorString_v6000 pfn_cuGetErrorString; +static PFN_cuGetErrorName_v6000 pfn_cuGetErrorName; +static PFN_cuPointerSetAttribute_v6000 pfn_cuPointerSetAttribute; +static PFN_cuDeviceGetAttribute_v2000 pfn_cuDeviceGetAttribute; +static PFN_cuDeviceGetByPCIBusId_v4010 pfn_cuDeviceGetByPCIBusId; +static PFN_cuDevicePrimaryCtxRetain_v7000 pfn_cuDevicePrimaryCtxRetain; +static PFN_cuDevicePrimaryCtxRelease_v11000 pfn_cuDevicePrimaryCtxRelease; +static PFN_cuDeviceTotalMem_v3020 pfn_cuDeviceTotalMem; +static PFN_cuDeviceGetName_v2000 pfn_cuDeviceGetName; +static PFN_cuCtxGetApiVersion_v3020 pfn_cuCtxGetApiVersion; +static PFN_cuCtxSetCurrent_v4000 pfn_cuCtxSetCurrent; +static PFN_cuCtxGetCurrent_v4000 pfn_cuCtxGetCurrent; +static PFN_cuCtxGetDevice_v2000 pfn_cuCtxGetDevice; +static PFN_cuCtxGetExecAffinity_v11040 pfn_cuCtxGetExecAffinity; +static PFN_cuMemAlloc_v3020 pfn_cuMemAlloc; +static PFN_cuMemFree_v3020 pfn_cuMemFree; +static PFN_cuMemHostRegister_v6050 pfn_cuMemHostRegister; +static PFN_cuMemHostUnregister_v4000 pfn_cuMemHostUnregister; +static PFN_cuMemHostGetDevicePointer_v3020 pfn_cuMemHostGetDevicePointer; +static PFN_cuFlushGPUDirectRDMAWrites_v11030 pfn_cuFlushGPUDirectRDMAWrites;
Quoted 8 lines
Quoted 3 lines
+#else
staticPFN_cuGetErrorStringpfn_cuGetErrorString; staticPFN_cuGetErrorNamepfn_cuGetErrorName;What is the logic here?
The old version keeps its original name, and new versions have a suffix? Why not use the old version?
What will happen with next versions?
Looks like we cannot do better than this versioning when using cuGetProcAddress to avoid linking CUDA.
Applied
Quoted 6 lines · On Mon, 15 Sep 2025 17:41:28 +0300 Gregory Etelson <[email protected]> wrote:
From: Elena Agostini <[email protected]>
Add support for new NVIDIA GPU H100.
Signed-off-by Elena Agostini <[email protected]>---
In addition to Thomas's comments. AI code review also identified some problems. Please fix and resubmit.
(Feels fun using AI to review Nvidia patches)...
## DPDK Patch Review: gpu/cuda NVIDIA GPU Device ID Series
**Series:** [PATCH 1/9] to [PATCH 9/9] - Adding NVIDIA GPU device IDs to CUDA driver **Submitter:** Gregory Etelson (on behalf of Elena Agostini)
**Date:** Mon, 15 Sep 2025
---
### Overall Assessment
This series adds various NVIDIA GPU device IDs to the CUDA driver. While the technical changes are straightforward, there are several compliance issues with DPDK contribution guidelines.
---
### Patch-by-Patch Review
#### **Patch 1/9: gpu/cuda: add NVIDIA GPU H100**
| Check | Status | Notes | |-------|--------|-------| | Subject ≤60 chars | ✅ Pass | 31 characters | | Lowercase after colon | ✅ Pass | | | Component prefix | ✅ Pass | `gpu/cuda:` correct | | Signed-off-by | ✅ Pass | Elena Agostini <[email protected]> | | Commit body | ⚠️ Warning | Very minimal - "Add support for new NVIDIA GPU H100." |
**Verdict:** Acceptable, but body could be more descriptive.
---
#### **Patch 2/9: gpu/cuda: new RoyB A100T GPU ID**
| Check | Status | Notes | |-------|--------|-------| | Subject ≤60 chars | ✅ Pass | 33 characters | | Subject style | ⚠️ Warning | "RoyB" - internal codename may not be meaningful to readers | | **Commit body** | ❌ **Error** | **Missing description - only Signed-off-by present** | | Signed-off-by | ✅ Pass | |
**Error (must fix):** Per AGENTS.md line 114: "Describe the issue being fixed or feature being added." This patch has no body text.
---
#### **Patch 3/9:** (inferred from context - adds more device IDs)
Similar pattern to other patches.
---
#### **Patch 4/9: gpu/cuda: new Hopper GPU IDs**
| Check | Status | Notes | |-------|--------|-------| | Subject | ✅ Pass | 27 characters | | Commit body | ⚠️ Warning | Grammar: "Add **a** new NVIDIA Hopper GPU **IDs**" - article/noun disagreement | | Signed-off-by | ✅ Pass | |
**Warning:** Should read either "Add new NVIDIA Hopper GPU IDs" or "Add a new NVIDIA Hopper GPU ID."
---
#### **Patch 5/9: gpu/cuda: add new gpu hopper 80gb device id**
| Check | Status | Notes | |-------|--------|-------| | Subject length | ✅ Pass | 47 characters | | **Subject case** | ⚠️ **Warning** | "gpu" and "hopper" should likely be uppercase for consistency: "GPU" and "Hopper" | | **Commit body mood** | ⚠️ **Warning** | "Added the new..." uses past tense. Should be imperative: "Add the new..." | | Signed-off-by | ✅ Pass | |
**Warning (should fix):** Per AGENTS.md line 54: Mood should be "Imperative (instructions to codebase)."
---
#### **Patch 6/9:** (extends device IDs with A800, H800, L40, L4 series)
Major refactoring patch adding many device IDs. Code appears structurally sound.
---
#### **Patch 7/9: gpu/cuda: extend NVIDIA GPU device ID list**
| Check | Status | Notes | |-------|--------|-------| | Subject | ✅ Pass | 44 characters | | **Signed-off-by** | ❌ **Error** | `Signed-off-by: eagostini <[email protected]>` - **uses username, not real name** | | From: line | ❌ **Error** | `From: eagostini <[email protected]>` - same issue |
**Error (must fix):** Per AGENTS.md line 116: "Signed-off-by: present with **real name** and valid email" and line 168: "Tag format: Tag-name: **Full Name** <[email protected]>."
Should be: Signed-off-by: Elena Agostini <[email protected]>
---
#### **Patch 8/9: gpu/cuda: extend NVIDIA GPU device ID list**
| Check | Status | Notes | |-------|--------|-------| | **Subject** | ⚠️ **Warning** | **Identical to Patch 7/9** - subjects should be unique/descriptive | | **Signed-off-by** | ❌ **Error** | Same issue: `eagostini` instead of `Elena Agostini` | | From: line | ❌ **Error** | Same issue |
**Warning:** Patches 7 and 8 have identical subjects. Per the spirit of AGENTS.md guidelines, subjects should meaningfully distinguish patches. Consider: "gpu/cuda: add Laptop and Embedded GPU IDs" for patch 8.
---
#### **Patch 9/9:** (extends list further with more Laptop/Embedded variants)
Similar issues to patches 7/8 regarding authorship formatting.
---
### Code Style Issues
#### **1. Duplicate Macro Values (Patch 5)**
```c #define NVIDIA_GPU_HOPPER_GRACE (0x2342) #define NVIDIA_GPU_H100_GH1_DEVICE_ID (0x2342) ```
Two different macros defined with the same PCI device ID 0x2342. This appears intentional (same device, different names), but the NVIDIA_GPU_HOPPER_GRACE macro is later removed. The series should be consolidated to avoid this intermediate state breaking bisectability.
#### **2. Inconsistent Naming Convention**
The macro naming is inconsistent across the series:
- Some use NVIDIA_GPU_*_DEVICE_ID suffix
- Some use just NVIDIA_* (e.g., NVIDIA_A40, NVIDIA_H100)
- Some use NVIDIA_RTX_*
While not strictly an error, this inconsistency makes the code harder to maintain.
#### **3. Double Blank Lines (Patch 9)**
```c
+ },
+
+
+ {
```Lines 2130-2131 show two consecutive blank lines, which violates typical formatting expectations.
#### **4. Missing Documentation Update**
Per AGENTS.md lines 646-650 and 658:
- "New drivers or subsystems must have release notes"
- "Update release notes in doc/guides/rel_notes/ for important changes"
Adding significant new GPU support (H100, H200, L40 series, etc.) should arguably have a release notes entry, though this is borderline for device ID additions.
---
### Summary of Required Fixes
| Severity | Issue | Patches Affected | |----------|-------|------------------| | **Error** | Missing commit body | 2/9 | | **Error** | Signed-off-by uses alias, not real name | 7/9, 8/9, 9/9 | | **Error** | From: uses alias, not real name | 7/9, 8/9, 9/9 | | Warning | Past tense in commit body | 5/9 | | Warning | Lowercase in subject where uppercase expected | 5/9 | | Warning | Grammar error in body | 4/9 | | Warning | Duplicate subject lines | 7/9 vs 8/9 | | Warning | Double blank lines in code | 9/9 | | Info | Inconsistent macro naming style | Multiple | | Info | Consider release notes update | Series |
---
### Recommended Actions
1. **Patch 2/9:** Add a description to the commit body explaining what "RoyB A100T" refers to.
2. **Patches 7/9, 8/9, 9/9:** Change author and signoff from:
``` From: eagostini <[email protected]> Signed-off-by: eagostini <[email protected]> ``` To: ``` From: Elena Agostini <[email protected]> Signed-off-by: Elena Agostini <[email protected]> ```
3. **Patch 5/9:** Fix subject case and body tense:
- Subject: gpu/cuda: add new GPU Hopper 80GB device ID
- Body: "Add the new Hopper 80GB GPU device ID to the list."
4. **Patches 7 & 8:** Differentiate the subjects (e.g., one for datacenter GPUs, one for Laptop/Embedded).
5. **Patch 9:** Remove the double blank line in cuda.c.