CI: Added AVC and HEVC decode stability tests to CI. (#572)

* * CI: Added AVC and HEVC decode stability tests to CI.

* * CI: Do not run HEVC stability tests on MI2xx or MI1xx.
This commit is contained in:
jeffqjiangNew
2025-04-24 10:46:17 -04:00
committed by GitHub
parent 02fa4b5516
commit 6aab0c1375
2 changed files with 60 additions and 6 deletions
+39
View File
@@ -30,6 +30,7 @@ def runTestCommand (platform, project) {
String packageManager = 'apt -y'
String toolsPackage = 'llvm-amdgpu-dev'
String llvmLocation = '/opt/amdgpu/lib/x86_64-linux-gnu/llvm-20.1/bin'
boolean runHevcStability = true;
if (platform.jenkinsLabel.contains('rhel')) {
libLocation = ':/usr/local/lib'
@@ -44,6 +45,10 @@ def runTestCommand (platform, project) {
toolsPackage = 'llvm-amdgpu-devel'
llvmLocation = '/opt/amdgpu/lib64/llvm-20.1/bin'
}
if (platform.jenkinsLabel.contains('gfx90a') || platform.jenkinsLabel.contains('gfx908')) {
runHevcStability = false;
}
String commitSha
String repoUrl
@@ -90,6 +95,26 @@ def runTestCommand (platform, project) {
wget http://math-ci.amd.com/userContent/computer-vision/HevcConformance/*zip*/HevcConformance.zip
unzip HevcConformance.zip
fi
FILE_COUNT=\$(find \${JENKINS_HOME_DIR}/rocDecode/AvcStability -type f | wc -l)
# Check if there are 22 files
if [ "\$FILE_COUNT" -ne 22 ]; then
echo "wrong file count"
ls
cd \${JENKINS_HOME_DIR}/rocDecode
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeStability/AvcStability.zip
unzip AvcStability.zip
fi
if ${runHevcStability}; then
FILE_COUNT=\$(find \${JENKINS_HOME_DIR}/rocDecode/HevcStability -type f | wc -l)
# Check if there are 44 files
if [ "\$FILE_COUNT" -ne 44 ]; then
echo "wrong file count"
ls
cd \${JENKINS_HOME_DIR}/rocDecode
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeStability/HevcStability.zip
unzip HevcStability.zip
fi
fi
if [ ! -f \${JENKINS_HOME_DIR}/rocDecode/data1.img ]; then
echo "File does not exist."
cd \${JENKINS_HOME_DIR}/rocDecode
@@ -104,10 +129,16 @@ def runTestCommand (platform, project) {
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeConformance/Vp9Conformance.zip
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeConformance/Av1Conformance_v1.0.zip
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeConformance/AvcConformance.zip
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeStability/AvcStability.zip
unzip HevcConformance.zip
unzip Vp9Conformance.zip
unzip Av1Conformance_v1.0.zip
unzip AvcConformance.zip
unzip AvcStability.zip
if ${runHevcStability}; then
wget http://math-ci.amd.com/userContent/computer-vision/rocDecodeStability/HevcStability.zip
unzip HevcStability.zip
fi
fi
"""
def command = """#!/usr/bin/env bash
@@ -143,6 +174,14 @@ def runTestCommand (platform, project) {
cd ../
mkdir av1-conformance && cd av1-conformance
python3 /opt/rocm/share/rocdecode/test/testScripts/run_rocDecode_Conformance.py --videodecode_exe ./../../rocdecode-sample/videodecode --files_directory \${JENKINS_HOME_DIR}/rocDecode/Av1Conformance_v1.0 --results_directory .
echo rocdecode stability tests
cd ../../ && mkdir -p stability && cd stability
mkdir avc-stability && cd avc-stability
python3 /opt/rocm/share/rocdecode/test/testScripts/run_rocDecodeSamples.py --videodecode_exe ./../../rocdecode-sample/videodecode --files_directory \${JENKINS_HOME_DIR}/rocDecode/AvcStability --results_directory . --check_decode_status 1
if ${runHevcStability}; then
cd ../ && mkdir hevc-stability && cd hevc-stability
python3 /opt/rocm/share/rocdecode/test/testScripts/run_rocDecodeSamples.py --videodecode_exe ./../../rocdecode-sample/videodecode --files_directory \${JENKINS_HOME_DIR}/rocDecode//HevcStability --results_directory . --check_decode_status 1
fi
cd ../../
echo rocdecode-sample - videoDecode with data1 video test
cd rocdecode-sample
+21 -6
View File
@@ -76,6 +76,8 @@ def print_bitrate(current_file):
parser = argparse.ArgumentParser()
parser.add_argument('--rocDecode_directory', type=str, default='',
help='The rocDecode Directory - required')
parser.add_argument('--videodecode_exe', type=str, default='',
help='Video decode sample app exe - optional')
parser.add_argument('--gpu_device_id', type=int, default=0,
help='The GPU device ID that will be used to run the test on it - optional (default:0 [range:0 - N-1] N = total number of available GPUs on a machine)')
parser.add_argument('--files_directory', type=str, default='',
@@ -86,6 +88,8 @@ parser.add_argument('--num_threads', type=int, default=1,
help='The number of threads is only for the videoDecodePerf sample (sample_mode = 1) - optional (default:1)')
parser.add_argument('--max_num_decoded_frames', type=int, default=0,
help='The max number of decoded frames. Useful for partial decoding of a long stream. - optional (default:0, meaning no limit)')
parser.add_argument('--results_directory', type=str, default='',
help='The path to a dirctory to store results - optional')
parser.add_argument('--check_decode_status', type=int, default=0,
help='Report the number of streams that have completed decoding without abortion. For decoder stability check. - optional (default:0, meaning normal performance report)')
@@ -95,6 +99,8 @@ rocDecodeDirectory = args.rocDecode_directory
gpuDeviceID = args.gpu_device_id
filesDir = args.files_directory
filesDirPath = Path(filesDir)
videoDecodeEXE = args.videodecode_exe
resultsDir = args.results_directory
sampleMode = args.sample_mode
numThreads = args.num_threads
maxNumFrames = args.max_num_decoded_frames
@@ -106,12 +112,21 @@ print("\nrunrocDecodeTests V"+__version__+"\n")
# rocDecode Application
scriptPath = os.path.dirname(os.path.realpath(__file__))
if sampleMode == 0:
rocDecode_exe = rocDecodeDirectory+'/samples/videoDecode/build/videodecode'
resultsPath = scriptPath+'/rocDecode_videoDecode_results'
elif sampleMode == 1:
rocDecode_exe = rocDecodeDirectory+'/samples/videoDecodePerf/build/videodecodeperf'
resultsPath = scriptPath+'/rocDecode_videoDecodePerf_results'
if videoDecodeEXE == '':
if sampleMode == 0:
rocDecode_exe = rocDecodeDirectory+'/samples/videoDecode/build/videodecode'
elif sampleMode == 1:
rocDecode_exe = rocDecodeDirectory+'/samples/videoDecodePerf/build/videodecodeperf'
else:
rocDecode_exe = videoDecodeEXE
if resultsDir == '':
if sampleMode == 0:
resultsPath = scriptPath+'/rocDecode_videoDecode_results'
elif sampleMode == 1:
resultsPath = scriptPath+'/rocDecode_videoDecodePerf_results'
else:
resultsPath = resultsDir+'/rocDecode_videoDecode_results'
run_rocDecode_app = os.path.abspath(rocDecode_exe)
os.system('(mkdir -p ' + resultsPath + ')')
if(os.path.isfile(run_rocDecode_app)):