[ARVADOS] updated: 2.1.0-1666-g24ccf7a58

Git user git at public.arvados.org
Wed Nov 24 20:29:39 UTC 2021


Summary of changes:
 doc/_includes/_container_runtime_constraints.liquid |  3 +++
 lib/crunchrun/crunchrun.go                          | 14 +++++++++++++-
 sdk/go/arvados/container.go                         | 15 +++++++--------
 3 files changed, 23 insertions(+), 9 deletions(-)

       via  24ccf7a58d10a2a3b77a1ef6f808c1ad422e8b35 (commit)
      from  458dae934c14435c0c86b90321ac8000498cab23 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 24ccf7a58d10a2a3b77a1ef6f808c1ad422e8b35
Author: Peter Amstutz <peter.amstutz at curii.com>
Date:   Wed Nov 24 15:26:46 2021 -0500

    12630: Remove distinction between cubin/PTX hardware capabilities
    
    Fix misspelled "HardwareCapability"
    
    Add cuda_ fields runtime_constraints documentation.
    
    Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>

diff --git a/doc/_includes/_container_runtime_constraints.liquid b/doc/_includes/_container_runtime_constraints.liquid
index 7e0c8f18f..dcdc29cf3 100644
--- a/doc/_includes/_container_runtime_constraints.liquid
+++ b/doc/_includes/_container_runtime_constraints.liquid
@@ -14,3 +14,6 @@ table(table table-bordered table-condensed).
 |vcpus|integer|Number of cores to be used to run this process.|Optional. However, a ContainerRequest that is in "Committed" state must provide this.|
 |keep_cache_ram|integer|Number of keep cache bytes to be used to run this process.|Optional.|
 |API|boolean|When set, ARVADOS_API_HOST and ARVADOS_API_TOKEN will be set, and container will have networking enabled to access the Arvados API server.|Optional.|
+|cuda_driver_version|string|Minimum CUDA driver version.|Optional.|
+|cuda_hardware_capability|string|Minimum CUDA hardware capability.|Optional.|
+|cuda_device_count|int|Number of GPUs to request.|Optional.|
diff --git a/lib/crunchrun/crunchrun.go b/lib/crunchrun/crunchrun.go
index 4af612993..1c874d981 100644
--- a/lib/crunchrun/crunchrun.go
+++ b/lib/crunchrun/crunchrun.go
@@ -986,6 +986,18 @@ func (runner *ContainerRunner) CreateContainer(imageID string, bindmounts map[st
 	runner.executorStdin = stdin
 	runner.executorStdout = stdout
 	runner.executorStderr = stderr
+
+	cudaDeviceCount := 0
+	if runner.Container.RuntimeConstraints.CUDADriverVersion != "" ||
+		runner.Container.RuntimeConstraints.CUDAHardwareCapability != "" ||
+		runner.Container.RuntimeConstraints.CUDADeviceCount != 0 {
+		// if any of these are set, enable CUDA GPU support
+		cudaDeviceCount = runner.Container.RuntimeConstraints.CUDADeviceCount
+		if cudaDeviceCount == 0 {
+			cudaDeviceCount = 1
+		}
+	}
+
 	return runner.executor.Create(containerSpec{
 		Image:           imageID,
 		VCPUs:           runner.Container.RuntimeConstraints.VCPUs,
@@ -995,7 +1007,7 @@ func (runner *ContainerRunner) CreateContainer(imageID string, bindmounts map[st
 		BindMounts:      bindmounts,
 		Command:         runner.Container.Command,
 		EnableNetwork:   enableNetwork,
-		CUDADeviceCount: runner.Container.RuntimeConstraints.CUDADeviceCount,
+		CUDADeviceCount: cudaDeviceCount,
 		NetworkMode:     runner.networkMode,
 		CgroupParent:    runner.setCgroupParent,
 		Stdin:           stdin,
diff --git a/sdk/go/arvados/container.go b/sdk/go/arvados/container.go
index 8e335f875..27afc1a3a 100644
--- a/sdk/go/arvados/container.go
+++ b/sdk/go/arvados/container.go
@@ -96,14 +96,13 @@ type Mount struct {
 // RuntimeConstraints specify a container's compute resources (RAM,
 // CPU) and network connectivity.
 type RuntimeConstraints struct {
-	API                         bool     `json:"API"`
-	RAM                         int64    `json:"ram"`
-	VCPUs                       int      `json:"vcpus"`
-	KeepCacheRAM                int64    `json:"keep_cache_ram"`
-	CUDADriverVersion           string   `json:"cuda_driver_version,omitempty"`
-	CUDACubinHardwareCapability []string `json:"cuda_cubin_hardware_capability,omitempty"`
-	CUDAPTXHardwardCapability   string   `json:"cuda_ptx_hardware_capability,omitempty"`
-	CUDADeviceCount             int      `json:"cuda_device_count,omitempty"`
+	API                    bool   `json:"API"`
+	RAM                    int64  `json:"ram"`
+	VCPUs                  int    `json:"vcpus"`
+	KeepCacheRAM           int64  `json:"keep_cache_ram"`
+	CUDADriverVersion      string `json:"cuda_driver_version,omitempty"`
+	CUDAHardwareCapability string `json:"cuda_hardware_capability,omitempty"`
+	CUDADeviceCount        int    `json:"cuda_device_count,omitempty"`
 }
 
 // SchedulingParameters specify a container's scheduling parameters

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list