def rocmnode(name) { return '(rocmtest || miopen) && (' + name + ')' } def get_branch_name(){ def shared_library_branch = scm.branches[0].name if (shared_library_branch .contains("*/")) { shared_library_branch = shared_library_branch.split("\\*/")[1] } echo "${shared_library_branch}" return shared_library_branch } library "jenkins-shared@${get_branch_name()}" pipeline { agent none environment { docker_args="--device=/dev/kfd --device=/dev/dri --group-add video --group-add render --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v=/var/jenkins/:/var/jenkins" extra_log_env = " MIOPEN_LOG_LEVEL=5 " Fp16_flags = " -DMIOPEN_TEST_HALF=Off" Bf16_flags = " -DMIOPEN_TEST_BFLOAT16=Off" Int8_flags = " -DMIOPEN_TEST_INT8=Off" Full_test = " -DMIOPEN_TEST_ALL=Off" Smoke_targets = " check MIOpenDriver" NOCOMGR_flags = " -DMIOPEN_USE_COMGR=Off" NOMLIR_flags = " -DMIOPEN_USE_MLIR=Off" perftest_image = docker.image('ubuntu:22.04') } parameters { booleanParam(name: 'COMPARE_TO_BASE', defaultValue : true, description: 'Compare test results to base results') booleanParam(name: 'PERF_TEST_FP32', defaultValue : true, description: 'Run FP32 tests') booleanParam(name: 'PERF_TEST_FP16', defaultValue : true, description: 'Run FP16 tests') booleanParam(name: 'PERF_TEST_ARCHIVE', defaultValue : true, description: 'Archive results from this run') booleanParam(name: "USE_SCCACHE_DOCKER", defaultValue: true, description: "Use the sccache for building CK in the Docker Image (default: ON)") string(name: 'PERF_TEST_OVERRIDE', defaultValue: '', description: 'Add extra env vars for the MIOpenDriver cmd, comma separated') choice(name: 'INSTALL_MIOPEN', choices: ['ON', 'OFF'], description: 'Build/Install MIOpen inside docker') } stages { stage('Build Docker'){ agent{ label rocmnode("gfx90a") } steps{ script { echo "Build Docker Stage" def (docker_image, image_name) = utils.getDockerImage() perftest_image = docker_image } } } stage("Performance Tests - gfx90a") { parallel{ stage('Fp32 BS128 Hip Performance Resnet50_v1.5 gfx90A'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1.5_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS256 Hip Performance Resnet50_v1.5 gfx90A'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1.5_FP32_BS256.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Resnet50_v1.5 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1.5_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Resnet50_v1.5 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1.5_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance Resnet50_v1.5 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1.5_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance Resnet50_v1.5 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1.5_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Alexnet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Alexnet_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance Alexnet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Alexnet_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS4 Hip Performance Alexnet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Alexnet_v1_FP32_BS4.txt", docker_image: perftest_image) } } } stage('Fp32 BS64 Hip Performance Alexnet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Alexnet_v1_FP32_BS64.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Alexnet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Alexnet_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Alexnet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Alexnet_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance Densenet201_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Densenet201_v1_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp32 BS256 Hip Performance Densenet201_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Densenet201_v1_FP32_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance Densenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Densenet_v1_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp32 BS256 Hip Performance Densenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Densenet_v1_FP32_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Googlenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Googlenet_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance Googlenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Googlenet_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Googlenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Googlenet_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Googlenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Googlenet_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Inception3_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception3_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Inception3_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception3_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Inception3_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception3_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Inception4_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception4_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance Inception4_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception4_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Inception4_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception4_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Inception4_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Inception4_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS4 Hip Performance Mobilenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Mobilenet_v1_FP32_BS4.txt", docker_image: perftest_image) } } } stage('Fp32 BS64 Hip Performance Mobilenet_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Mobilenet_v1_FP32_BS64.txt", docker_image: perftest_image) } } } stage('Fp16 BS32 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP16_BS32.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS256 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP32_BS256.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Resnet101_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet101_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance Resnet152_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet152_v1_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp32 BS256 Hip Performance Resnet152_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet152_v1_FP32_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Resnet152_v2 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet152_v2_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance Resnet152_v2 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet152_v2_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Resnet152_v2 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet152_v2_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Resnet152_v2 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet152_v2_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS32 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP16_BS32.txt", docker_image: perftest_image) } } } stage('Fp16 BS64 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP16_BS64.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 B512 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS256 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP32_BS256.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance Resnet50_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Resnet50_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance Shufflenet_v2 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "Shufflenet_v2_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance SSD_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "SSD_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance SSD_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "SSD_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance VGG11_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG11_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS256 Hip Performance VGG11_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG11_v1_FP16_BS256.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance VGG11_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG11_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance VGG11_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG11_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance VGG16_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG16_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS4 Hip Performance VGG16_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG16_v1_FP32_BS4.txt", docker_image: perftest_image) } } } stage('Fp32 BS64 Hip Performance VGG16_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG16_v1_FP32_BS64.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance VGG16_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG16_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance VGG16_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG16_v1_FP32_BS512.txt", docker_image: perftest_image) } } } stage('Fp16 BS128 Hip Performance VGG19_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG19_v1_FP16_BS128.txt", docker_image: perftest_image) } } } stage('Fp16 BS512 Hip Performance VGG19_v1 gfx90a'){ when { expression {params.PERF_TEST_FP16} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG19_v1_FP16_BS512.txt", docker_image: perftest_image) } } } stage('Fp32 BS128 Hip Performance VGG19_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG19_v1_FP32_BS128.txt", docker_image: perftest_image) } } } stage('Fp32 BS512 Hip Performance VGG19_v1 gfx90a'){ when { expression {params.PERF_TEST_FP32} } options { retry(2) } agent{ label rocmnode("gfx90a") } steps{ script { utils.RunPerfTest(filename: "VGG19_v1_FP32_BS512.txt", docker_image: perftest_image) } } } } } } }