@@ -34,23 +34,32 @@ const nvidiaCLI = "nvidia-container-cli"
3434// Capability specifies capabilities for the gpu inside the container
3535// Detailed explaination of options can be found:
3636// https://github.com/nvidia/nvidia-container-runtime#supported-driver-capabilities
37- type Capability int
37+ type Capability string
3838
3939const (
4040 // Compute capability
41- Compute Capability = iota + 1
41+ Compute Capability = "compute"
4242 // Compat32 capability
43- Compat32
43+ Compat32 Capability = "compat32"
4444 // Graphics capability
45- Graphics
45+ Graphics Capability = "graphics"
4646 // Utility capability
47- Utility
47+ Utility Capability = "utility"
4848 // Video capability
49- Video
49+ Video Capability = "video"
5050 // Display capability
51- Display
51+ Display Capability = "display"
5252)
5353
54+ var allCaps = []Capability {
55+ Compute ,
56+ Compat32 ,
57+ Graphics ,
58+ Utility ,
59+ Video ,
60+ Display ,
61+ }
62+
5463// WithGPUs adds NVIDIA gpu support to a container
5564func WithGPUs (opts ... Opts ) oci.SpecOpts {
5665 return func (_ context.Context , _ oci.Client , _ * containers.Container , s * specs.Spec ) error {
@@ -110,7 +119,7 @@ func (c *config) args() []string {
110119 args = append (args , fmt .Sprintf ("--device=%s" , strings .Join (c .Devices , "," )))
111120 }
112121 for _ , c := range c .Capabilities {
113- args = append (args , fmt .Sprintf ("--%s" , capFlags [ c ] ))
122+ args = append (args , fmt .Sprintf ("--%s" , c ))
114123 }
115124 if c .LDConfig != "" {
116125 args = append (args , fmt .Sprintf ("--ldconfig=%s" , c .LDConfig ))
@@ -122,15 +131,6 @@ func (c *config) args() []string {
122131 return args
123132}
124133
125- var capFlags = map [Capability ]string {
126- Compute : "compute" ,
127- Compat32 : "compat32" ,
128- Graphics : "graphics" ,
129- Utility : "utility" ,
130- Video : "video" ,
131- Display : "display" ,
132- }
133-
134134// Opts are options for configuring gpu support
135135type Opts func (* config ) error
136136
@@ -160,9 +160,7 @@ func WithAllDevices(c *config) error {
160160
161161// WithAllCapabilities adds all capabilities to the container for the gpus
162162func WithAllCapabilities (c * config ) error {
163- for k := range capFlags {
164- c .Capabilities = append (c .Capabilities , k )
165- }
163+ c .Capabilities = allCaps
166164 return nil
167165}
168166
0 commit comments