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:
@@ -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
|
||||
|
||||
@@ -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)):
|
||||
|
||||
Reference in New Issue
Block a user