From 0d0189f7945501cbb9953c57430c5b6055942257 Mon Sep 17 00:00:00 2001 From: Illia Silin <98187287+illsilin@users.noreply.github.com> Date: Wed, 15 Jun 2022 19:26:48 -0700 Subject: [PATCH] Use new github credentials (#278) * use pre-built docker instead of building a new one * try docker.image.pull * change syntax in docker.image() * add 30 min timeout * increase timeout to 3 hours * move performance tests to first stage for testing * set image variable to the new container name * update image name * check available images * check available images in both places * try different image name * use image ID to refer to image * run performance on gfx90a * fix the gpu_arch labeling, add parameter * move env vars out of stages * add stand-alone performance script, MI200 tests, CU numbers * dos2unix for run_perf_tests.sh * try the new git credentials * use env var for git credentials [ROCm/composable_kernel commit: fb9b6b1e33e634275d69225ae6ed91196f547551] --- Jenkinsfile | 7 +- script/run_performance_tests.sh | 115 ++++++++++++++++---------------- 2 files changed, 62 insertions(+), 60 deletions(-) mode change 100644 => 100755 script/run_performance_tests.sh diff --git a/Jenkinsfile b/Jenkinsfile index beac2ea248..12f11c06c2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -101,7 +101,8 @@ def buildHipClangJob(Map conf=[:]){ def variant = env.STAGE_NAME def retimage - gitStatusWrapper(credentialsId: '7126e5fe-eb51-4576-b52b-9aaf1de8f0fd', gitHubContext: "Jenkins - ${variant}", account: 'ROCmSoftwarePlatform', repo: 'composable_kernel') { + + gitStatusWrapper(credentialsId: "${status_wrapper_creds}", gitHubContext: "Jenkins - ${variant}", account: 'ROCmSoftwarePlatform', repo: 'composable_kernel') { if (params.USE_DOCKERFILE){ try { retimage = docker.build("${image}", dockerArgs + '.') @@ -191,7 +192,8 @@ def runCKProfiler(Map conf=[:]){ def variant = env.STAGE_NAME def retimage - gitStatusWrapper(credentialsId: '7126e5fe-eb51-4576-b52b-9aaf1de8f0fd', gitHubContext: "Jenkins - ${variant}", account: 'ROCmSoftwarePlatform', repo: 'composable_kernel') { + + gitStatusWrapper(credentialsId: "${status_wrapper_creds}", gitHubContext: "Jenkins - ${variant}", account: 'ROCmSoftwarePlatform', repo: 'composable_kernel') { if (params.USE_DOCKERFILE){ try { retimage = docker.build("${image}", dockerArgs + '.') @@ -317,6 +319,7 @@ pipeline { dbsshport = "${dbsshport}" dbsshuser = "${dbsshuser}" dbsshpassword = "${dbsshpassword}" + status_wrapper_creds = "${status_wrapper_creds}" } stages{ stage("Static checks") { diff --git a/script/run_performance_tests.sh b/script/run_performance_tests.sh old mode 100644 new mode 100755 index 6c96a9449d..95d63d0ffe --- a/script/run_performance_tests.sh +++ b/script/run_performance_tests.sh @@ -1,58 +1,57 @@ -#!/bin/bash -# -# in order to run this script you'd first need to build the ckProfiler executable in ../build/bin/ -# and make sure the following python packages are installed in your environment: -# pip3 install --upgrade pip -# pip3 install sqlalchemy -# pip3 install pymysql -# pip3 install pandas -# pip3 install sshtunnel -# you would also need to set up some environment variables in order to -# post your new test results to the database and compare them to the baseline -# please contact Illia.Silin@amd.com for more details -# - -export gemm_log="perf_gemm.log" -rm -f $gemm_log -git status | grep -e 'On branch' > ${gemm_log} -echo -n 'Node name: ' >>${gemm_log}; hostname >> ${gemm_log} -#get GPU_arch and number of compute units from rocminfo -echo -n "GPU_arch: " >> ${gemm_log}; rocminfo | grep "Name:" | grep "gfx" >> ${gemm_log} -rocminfo | grep "Compute Unit:" >> ${gemm_log} -hipcc --version | grep -e 'HIP version' >> ${gemm_log} -/opt/rocm/bin/amdclang++ --version | grep -e 'InstalledDir' >> ${gemm_log} -./profile_gemm.sh gemm 0 0 0 1 0 5 | tee -a ${gemm_log} -./profile_gemm.sh gemm 1 0 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 2 0 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 3 0 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 0 1 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 1 1 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 2 1 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 3 1 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 0 2 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 1 2 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 2 2 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 3 2 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 0 3 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 1 3 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 2 3 0 1 0 5 | tee -a $gemm_log -./profile_gemm.sh gemm 3 3 0 1 0 5 | tee -a $gemm_log - -python3 parse_perf_data.py ${gemm_log} - -#run resnet50 test -export resnet_log="perf_resnet50.log" -rm -f $resnet_log -git status | grep -e 'On branch' > ${resnet_log} -echo -n 'Node name: '>>${resnet_log}; hostname >>${resnet_log} -#get GPU_arch and number of compute units from rocminfo -echo -n "GPU_arch: " >> ${resnet_log}; rocminfo | grep "Name:" | grep "gfx" >> ${resnet_log} -rocminfo | grep "Compute Unit:" >> ${resnet_log} -hipcc --version | grep -e 'HIP version' >> ${resnet_log} -/opt/rocm/bin/amdclang++ --version | grep -e 'InstalledDir' >> ${resnet_log} -#first run tests with N=256 -./profile_conv.sh conv_fwd_bias_relu 1 1 1 1 0 2 0 1 256 | tee -a ${resnet_log} -#then run with N=4 -./profile_conv.sh conv_fwd_bias_relu 1 1 1 1 0 2 0 1 4 | tee -a ${resnet_log} -#the script will put the results from N=256 and N=4 runs into separate tables -python3 parse_perf_data.py ${resnet_log} +#!/bin/bash +# +# in order to run this script you'd first need to build the ckProfiler executable in ../build/bin/ +# and make sure the following python packages are installed in your environment: + +pip3 install --upgrade pip +pip3 install sqlalchemy pymysql pandas sshtunnel + +# you would also need to set up some environment variables in order to +# post your new test results to the database and compare them to the baseline +# please contact Illia.Silin@amd.com for more details +# + +export gemm_log="perf_gemm.log" +rm -f $gemm_log +git status | grep -e 'On branch' > ${gemm_log} +echo -n 'Node name: ' >>${gemm_log}; hostname >> ${gemm_log} +#get GPU_arch and number of compute units from rocminfo +echo -n "GPU_arch: " >> ${gemm_log}; rocminfo | grep "Name:" | grep "gfx" >> ${gemm_log} +rocminfo | grep "Compute Unit:" >> ${gemm_log} +hipcc --version | grep -e 'HIP version' >> ${gemm_log} +/opt/rocm/bin/amdclang++ --version | grep -e 'InstalledDir' >> ${gemm_log} +./profile_gemm.sh gemm 0 0 0 1 0 5 | tee -a ${gemm_log} +./profile_gemm.sh gemm 1 0 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 2 0 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 3 0 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 0 1 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 1 1 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 2 1 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 3 1 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 0 2 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 1 2 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 2 2 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 3 2 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 0 3 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 1 3 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 2 3 0 1 0 5 | tee -a $gemm_log +./profile_gemm.sh gemm 3 3 0 1 0 5 | tee -a $gemm_log + +python3 parse_perf_data.py ${gemm_log} + +#run resnet50 test +export resnet_log="perf_resnet50.log" +rm -f $resnet_log +git status | grep -e 'On branch' > ${resnet_log} +echo -n 'Node name: '>>${resnet_log}; hostname >>${resnet_log} +#get GPU_arch and number of compute units from rocminfo +echo -n "GPU_arch: " >> ${resnet_log}; rocminfo | grep "Name:" | grep "gfx" >> ${resnet_log} +rocminfo | grep "Compute Unit:" >> ${resnet_log} +hipcc --version | grep -e 'HIP version' >> ${resnet_log} +/opt/rocm/bin/amdclang++ --version | grep -e 'InstalledDir' >> ${resnet_log} +#first run tests with N=256 +./profile_conv.sh conv_fwd_bias_relu 1 1 1 1 0 2 0 1 256 | tee -a ${resnet_log} +#then run with N=4 +./profile_conv.sh conv_fwd_bias_relu 1 1 1 1 0 2 0 1 4 | tee -a ${resnet_log} +#the script will put the results from N=256 and N=4 runs into separate tables +python3 parse_perf_data.py ${resnet_log}