mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Patched coremark_sweep.py. The script now runs for both 32 and 64bit.
This commit is contained in:
parent
d6b3fc0320
commit
984ed42f6a
@ -3,8 +3,8 @@
|
||||
|
||||
## Written: Shreesh Kulkarni, kshreesh5@gmail.com
|
||||
## Created: 20 March 2024
|
||||
## Modified: 20 March 2024
|
||||
## Purpose: Wally 32-bit Coremark sweep Script
|
||||
## Modified: 22 March 2024
|
||||
## Purpose: Wally Coremark sweep Script for both 32 and 64 bit configs.
|
||||
|
||||
## Documentation:
|
||||
|
||||
@ -29,10 +29,9 @@
|
||||
|
||||
|
||||
import os
|
||||
import subprocess # normal os.system() doesn't seem to work. Tried subprocess and it works.
|
||||
|
||||
# list of architectures to run. I have included only 32-bit for now as I'm still testing this script and modifying it to make it more efficient
|
||||
arch_list = [
|
||||
import re
|
||||
# list of architectures to run.
|
||||
arch32_list = [
|
||||
"rv32gc_zba_zbb_zbc",
|
||||
"rv32im_zicsr_zba_zbb_zbc",
|
||||
"rv32gc",
|
||||
@ -40,22 +39,32 @@ arch_list = [
|
||||
"rv32im_zicsr",
|
||||
"rv32i_zicsr"
|
||||
]
|
||||
arch64_list = [
|
||||
"rv64gc_zba_zbb_zbc",
|
||||
"rv64im_zicsr_zba_zbb_zbc",
|
||||
"rv64gc",
|
||||
"rv64imc_zicsr",
|
||||
"rv64im_zicsr",
|
||||
"rv64i_zicsr"
|
||||
]
|
||||
xlen_values = ['32','64']
|
||||
for xlen_value in xlen_values:
|
||||
if(xlen_value=='32'):
|
||||
for arch in arch32_list:
|
||||
os.system("make clean")
|
||||
make_all = f"make all XLEN={xlen_value} ARCH={arch}"
|
||||
os.system(make_all)
|
||||
make_run = f"make run XLEN={xlen_value} ARCH={arch}"
|
||||
os.system(make_run)
|
||||
else:
|
||||
for arch in arch64_list:
|
||||
os.system("make clean")
|
||||
make_all = f"make all XLEN={xlen_value} ARCH={arch}"
|
||||
os.system(make_all)
|
||||
make_run = f"make run XLEN={xlen_value} ARCH={arch}"
|
||||
os.system(make_run)
|
||||
|
||||
|
||||
# make command. If we wish to run the remaining commands like make clean, need to maintain a separate list.
|
||||
make_cmd = ["make", "run"]
|
||||
|
||||
# Iterate over the architectures
|
||||
for arch in arch_list:
|
||||
# Setting the arch variable
|
||||
env = os.environ.copy()
|
||||
env["ARCH"] = arch
|
||||
|
||||
# used subprocess to run coremark for each architecture
|
||||
print(f"Running for architecture: {arch}")
|
||||
result = subprocess.run(make_cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
||||
|
||||
# diplay the output on console. If we wish to store the results in a file,need to write some file handling code. Review needed
|
||||
print(result.stdout)
|
||||
print(result.stderr)
|
||||
print("\n" *5)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user