Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion jenkins/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nvidia/cuda:12.6.3-devel-ubuntu22.04
FROM docker.io/nvidia/cuda:12.6.3-devel-ubuntu22.04

# julia
RUN apt-get update && \
Expand Down
183 changes: 80 additions & 103 deletions jenkins/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,108 +1,85 @@
pipeline {
agent none
options {
disableConcurrentBuilds(abortPrevious: true)
buildDiscarder(logRotator(numToKeepStr: '8', daysToKeepStr: '20'))
}
stages {
stage('GPU Testing') {
parallel {
stage('NDTensorsCUDAExt') {
options {
timeout(time: 45, unit: 'MINUTES')
}
agent {
dockerfile {
label 'gpu&&v100'
filename 'Dockerfile'
dir 'jenkins'
additionalBuildArgs '--build-arg JULIA=1.12'
args '--gpus "device=0"'
}
}
environment {
HOME = pwd(tmp:true)
OMP_NUM_THREADS = 4
JULIA_NUM_THREADS = 4
}
steps {
sh 'rm -rf "$HOME/.julia"'
sh 'nvidia-smi'
sh '''
julia -e '
using Pkg: Pkg
Pkg.activate("./NDTensors/test")
Pkg.add(["CUDA", "Preferences", "CUDA_Driver_jll"])
using CUDA
CUDA.set_runtime_version!(v"12.6"; local_toolkit=false)
using CUDA_Driver_jll
using Preferences: set_preferences!
set_preferences!(CUDA_Driver_jll, "compat" => "false"; export_prefs=true)
'
'''
sh '''
julia -e 'using Pkg: Pkg; Pkg.activate(temp=true); Pkg.Registry.update(); Pkg.update(); Pkg.develop(path="./NDTensors"); Pkg.develop(path="."); Pkg.test("NDTensors"; test_args=["cuda"])'
'''
}
properties([
disableConcurrentBuilds(abortPrevious: true),
buildDiscarder(logRotator(numToKeepStr: '8', daysToKeepStr: '20'))
])

buildImage(context: 'jenkins', buildArgs: '--build-arg JULIA=1.12')
parallel cudaext: {
runPod(gpus: 1) {
stage('NDTensorsCUDAExt') {
timeout(time: 45, unit: 'MINUTES') {
withEnv([
"HOME=$WORKSPACE_TMP",
"OMP_NUM_THREADS=4",
"JULIA_NUM_THREADS=4"
]) {
sh 'nvidia-smi'
sh '''
julia -e '
using Pkg: Pkg
Pkg.activate("./NDTensors/test")
Pkg.add(["CUDA", "Preferences", "CUDA_Driver_jll"])
using CUDA
CUDA.set_runtime_version!(v"12.6"; local_toolkit=false)
using CUDA_Driver_jll
using Preferences: set_preferences!
set_preferences!(CUDA_Driver_jll, "compat" => "false"; export_prefs=true)
'
'''
sh '''
julia -e 'using Pkg: Pkg; Pkg.activate(temp=true); Pkg.Registry.update(); Pkg.update(); Pkg.develop(path="./NDTensors"); Pkg.develop(path="."); Pkg.test("NDTensors"; test_args=["cuda"])'
'''
}
stage('NDTensorscuTENSORExt') {
options {
timeout(time: 45, unit: 'MINUTES')
}
agent {
dockerfile {
label 'gpu&&v100'
filename 'Dockerfile'
dir 'jenkins'
additionalBuildArgs '--build-arg JULIA=1.12'
args '--gpus "device=0"'
}
}
environment {
HOME = pwd(tmp:true)
OMP_NUM_THREADS = 4
JULIA_NUM_THREADS = 4
}
steps {
sh 'rm -rf "$HOME/.julia"'
sh 'nvidia-smi'
sh '''
julia -e '
using Pkg: Pkg
Pkg.activate("./NDTensors/test")
Pkg.add(["CUDA", "Preferences", "CUDA_Driver_jll"])
using CUDA
CUDA.set_runtime_version!(v"12.6"; local_toolkit=false)
using CUDA_Driver_jll
using Preferences: set_preferences!
set_preferences!(CUDA_Driver_jll, "compat" => "false"; export_prefs=true)
'
'''
sh '''
julia -e 'using Pkg: Pkg; Pkg.activate(temp=true); Pkg.Registry.update(); Pkg.update(); Pkg.develop(path="./NDTensors"); Pkg.develop(path="."); Pkg.test("NDTensors"; test_args=["cutensor"])'
'''
}
}
}
}
},
tensorext: {
runPod(gpus: 1) {
stage('NDTensorscuTENSORExt') {
timeout(time: 45, unit: 'MINUTES') {
withEnv([
"HOME=$WORKSPACE_TMP",
"OMP_NUM_THREADS=4",
"JULIA_NUM_THREADS=4"
]) {
sh 'nvidia-smi'
sh '''
julia -e '
using Pkg: Pkg
Pkg.activate("./NDTensors/test")
Pkg.add(["CUDA", "Preferences", "CUDA_Driver_jll"])
using CUDA
CUDA.set_runtime_version!(v"12.6"; local_toolkit=false)
using CUDA_Driver_jll
using Preferences: set_preferences!
set_preferences!(CUDA_Driver_jll, "compat" => "false"; export_prefs=true)
'
'''
sh '''
julia -e 'using Pkg: Pkg; Pkg.activate(temp=true); Pkg.Registry.update(); Pkg.update(); Pkg.develop(path="./NDTensors"); Pkg.develop(path="."); Pkg.test("NDTensors"; test_args=["cutensor"])'
'''
}
stage('NDTensorsMetalExt'){
options {
timeout(time: 45, unit: 'MINUTES')
}
agent {
label 'm1'
}
environment{
PATH="${env.HOME}/.juliaup/bin:${env.PATH}"
PLATFORM = 'macos'
}
steps{
sh '''
juliaup update
juliaup default release
'''
sh '''
julia -e 'using Pkg: Pkg; Pkg.activate(temp=true); Pkg.Registry.update(); Pkg.update(); Pkg.develop(path="./NDTensors"); Pkg.develop(path="."); Pkg.test("NDTensors"; test_args=["metal"])'
'''
}
}
}
}
},
metalext: {
node('m1') {
stage('NDTensorsMetalExt') {
timeout(time: 45, unit: 'MINUTES') {
withEnv([
"PATH=${env.HOME}/.juliaup/bin:${env.PATH}",
"PLATFORM=macos"
]) {
checkout scm
sh '''
juliaup update
juliaup default release
'''
sh '''
julia -e 'using Pkg: Pkg; Pkg.activate(temp=true); Pkg.Registry.update(); Pkg.update(); Pkg.develop(path="./NDTensors"); Pkg.develop(path="."); Pkg.test("NDTensors"; test_args=["metal"])'
'''
}
}
}
Expand Down
Loading