diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml index f43c31ef03..dba77e5c8f 100644 --- a/.github/workflows/tarball.yml +++ b/.github/workflows/tarball.yml @@ -13,8 +13,18 @@ jobs: env: INSTALL_DIR: /tmp/foo1 steps: + - name: Set git sha mode + id: sha-mode + run: | + if [ "$EVENT" == 'pull_request' ]; then + echo "sha=${{github.event.pull_request.head.sha}}" >> $GITHUB_OUTPUT + else + echo "sha=$GITHUB_SHA" >> $GITHUB_OUTPUT + fi - name: Checkout code uses: actions/checkout@v3 + with: + ref: ${{ steps.sha-mode.sha }} - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.11.0 - name: Install Python @@ -73,6 +83,8 @@ jobs: - name: Verify expected paths run: | test -d $INSTALL_DIR/omniperf + test -s $INSTALL_DIR/omniperf/VERSION + test -s $INSTALL_DIR/omniperf/VERSION.sha test -d $INSTALL_DIR/omniperf/bin test -x $INSTALL_DIR/omniperf/bin/omniperf test -d $INSTALL_DIR/modulefiles/omniperf diff --git a/.gitignore b/.gitignore index 95f8be7bd8..aecccd7a1a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ __pycache__ .coverage saved_analysis pmc_kernel_top.csv +VERSION.sha # temp files /tests/Testing \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index cc33ffd2d3..89a0dbb7a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,17 @@ project( include(ExternalProject) include(GNUInstallDirs) +# version control info +find_package(Git) + +if(Git_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") + execute_process( + COMMAND git log --pretty=format:%h -n 1 + OUTPUT_VARIABLE OMNIPERF_GIT_REV + OUTPUT_STRIP_TRAILING_WHITESPACE) + message(STATUS "Git revision: ${OMNIPERF_GIT_REV}") +endif() + set(CMAKE_BUILD_TYPE "Release") if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX @@ -140,7 +151,7 @@ if(LOCALHOST MATCHES ".*\.crusher\.olcf\.ornl\.gov") endif() # Thera mods -if(LOCALHOST MATCHES ".*\.thera\.amd\.com") +if(LOCALHOST MATCHES "TheraS01|.*\.thera\.amd\.com|thera-hn") list(APPEND CMAKE_MESSAGE_INDENT " ") message(STATUS "Using thera-specific modulefile modification") file(READ ${PROJECT_SOURCE_DIR}/cmake/modfile.thera.mod mod_additions) @@ -151,6 +162,10 @@ if(LOCALHOST MATCHES ".*\.thera\.amd\.com") list(POP_BACK CMAKE_MESSAGE_INDENT) endif() +# git versioning file +configure_file(${PROJECT_SOURCE_DIR}/cmake/VERSION.sha.in + ${PROJECT_SOURCE_DIR}/VERSION.sha @ONLY) + enable_testing() add_test( @@ -196,7 +211,7 @@ add_test( install(PROGRAMS src/omniperf TYPE BIN) install(FILES src/parser.py TYPE BIN) install(FILES src/common.py TYPE BIN) -install(FILES VERSION DESTINATION ${CMAKE_INSTALL_PREFIX}) +install(FILES VERSION VERSION.sha DESTINATION ${CMAKE_INSTALL_PREFIX}) # src/omniperf_cli install( DIRECTORY src/omniperf_cli @@ -272,6 +287,13 @@ install( # Source tarball set(CPACK_SOURCE_GENERATOR "TGZ") -set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}) -set(CPACK_SOURCE_IGNORE_FILES ".*~$" \.git/ \.github /tests /build) +set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CMAKE_PROJECT_NAME}-${FULL_VERSION_STRING}) +set(CPACK_SOURCE_IGNORE_FILES + ".*~$" + \.git/ + \.github + \.gitmodules + \.gitignore + /tests + /build) include(CPack) diff --git a/README.md b/README.md index 87602e49cd..267465fcec 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -[![Docs](https://github.com/AMDResearch/omniperf/actions/workflows/pages/pages-build-deployment/badge.svg?branch=gh-pages)](https://amdresearch.github.io/omniperf/) - - +[![Docs](https://github.com/AMDResearch/omniperf/actions/workflows/pages/pages-build-deployment/badge.svg?branch=gh-pages)](https://amdresearch.github.io/omniperf/) [![GitHub commits since last release](https://img.shields.io/github/commits-since/AMDResearch/omniperf/latest/dev.svg)](https://github.com/AMDResearch/omniperf/compare/main...dev) # Omniperf diff --git a/VERSION b/VERSION index 21e8796a09..ee90284c27 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.3 +1.0.4 diff --git a/cmake/VERSION.sha.in b/cmake/VERSION.sha.in new file mode 100644 index 0000000000..5b3d301508 --- /dev/null +++ b/cmake/VERSION.sha.in @@ -0,0 +1 @@ +@OMNIPERF_GIT_REV@ diff --git a/docker-compose.yml b/docker-compose.yml index bd4d92edb6..35db4b3add 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,8 +24,8 @@ services: image: mongo restart: always environment: - MONGO_INITDB_ROOT_USERNAME: amd - MONGO_INITDB_ROOT_PASSWORD: amd123 + MONGO_INITDB_ROOT_USERNAME: temp + MONGO_INITDB_ROOT_PASSWORD: temp123 volumes: - grafana-mongo-db:/data/db ports: diff --git a/requirements.txt b/requirements.txt index 5ba33d4a76..69beb6c77b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,8 +2,8 @@ astunparse==1.6.2 colorlover dash matplotlib -numpy -pandas +numpy>=1.17.5 +pandas>=1.4.3 pymongo pyyaml tabulate diff --git a/sample/vcopy.cpp b/sample/vcopy.cpp index 91412e6180..0eed48711a 100644 --- a/sample/vcopy.cpp +++ b/sample/vcopy.cpp @@ -2,6 +2,8 @@ #include #include #include +#include +using namespace std; #define HIP_ASSERT(x) (assert((x)==hipSuccess)) @@ -19,7 +21,7 @@ __global__ void vecCopy(double *a, double *b, double *c, int n,int stride) void usage() { - printf("\nUsage: vcopy [n] [blocksize]\n\n"); + printf("\nUsage: vcopy [n] [blocksize] {dev}\n\n"); exit(1); return; } @@ -45,13 +47,24 @@ int main( int argc, char* argv[] ) double *d_c; int stride = 1; + int devId = 0; if(argc < 3) usage(); + if(argc > 3) + devId = atoi(argv[3]); n = atoi(argv[1]); blockSize = atoi(argv[2]); + int numGpuDevices; + HIP_ASSERT(hipGetDeviceCount(&numGpuDevices)); + if(devId >= numGpuDevices) + devId = 0; + HIP_ASSERT(hipSetDevice(devId)); + + printf("vcopy testing on GCD %d\n", devId); + assert(n > 0); assert(blockSize > 0); diff --git a/src/common.py b/src/common.py index 2109ede788..d33c7c55f2 100644 --- a/src/common.py +++ b/src/common.py @@ -22,8 +22,10 @@ import os import sys +import io from pathlib import Path import subprocess +import shutil OMNIPERF_HOME = Path(__file__).resolve().parent @@ -31,10 +33,51 @@ OMNIPERF_HOME = Path(__file__).resolve().parent PROG = "omniperf" SOC_LIST = ["mi50", "mi100", "mi200"] DISTRO_MAP = {"platform:el8": "rhel8", "15.3": "sle15sp3", "20.04": "ubuntu20_04"} -version = os.path.join(OMNIPERF_HOME.parent, "VERSION") -try: - with open(version, "r") as file: - VER = file.read().replace("\n", "") -except EnvironmentError: - print("ERROR: Cannot find VERSION file at {}".format(version)) - sys.exit(1) + + +def getVersion(): + # symantic version info + version = os.path.join(OMNIPERF_HOME.parent, "VERSION") + try: + with open(version, "r") as file: + VER = file.read().replace("\n", "") + except EnvironmentError: + print("ERROR: Cannot find VERSION file at {}".format(version)) + sys.exit(1) + + # git version info + gitDir = os.path.join(OMNIPERF_HOME.parent, ".git") + if (shutil.which("git") is not None) and os.path.exists(gitDir): + gitQuery = subprocess.run( + ["git", "log", "--pretty=format:%h", "-n", "1"], + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + ) + if gitQuery.returncode != 0: + SHA = "unknown" + MODE = "unknown" + else: + SHA = gitQuery.stdout.decode("utf-8") + MODE = "dev" + else: + shaFile = os.path.join(OMNIPERF_HOME.parent, "VERSION.sha") + try: + with open(shaFile, "r") as file: + SHA = file.read().replace("\n", "") + except EnvironmentError: + print("ERROR: Cannot find VERSION.sha file at {}".format(shaFile)) + sys.exit(1) + + MODE = "release" + + versionData = {"version": VER, "sha": SHA, "mode": MODE} + return versionData + + +def getVersionDisplay(version, sha, mode): + buf = io.StringIO() + print("-" * 40, file=buf) + print("Omniperf version: %s (%s)" % (version, mode), file=buf) + print("Git revision: %s" % sha, file=buf) + print("-" * 40, file=buf) + return buf.getvalue() diff --git a/src/docs/conf.py b/src/docs/conf.py index 286ef7a4cb..b967810f1d 100644 --- a/src/docs/conf.py +++ b/src/docs/conf.py @@ -111,8 +111,8 @@ html_static_path = ["_static"] htmlhelp_basename = "Omniperfdoc" html_theme_options = { - # "analytics_id": "G-1HLBBRSTT9", # Provided by Google in your dashboard - # "analytics_anonymize_ip": False, + "analytics_id": "G-C5DYLCE9ED", # Provided by Google in your dashboard + "analytics_anonymize_ip": False, "logo_only": False, "display_version": True, "prev_next_buttons_location": "bottom", diff --git a/src/docs/grafana_analyzer.md b/src/docs/grafana_analyzer.md index 5bba1ffeaf..5f9bcf46eb 100644 --- a/src/docs/grafana_analyzer.md +++ b/src/docs/grafana_analyzer.md @@ -1,4 +1,4 @@ -# Omniperf Grafana GUI Analyzer +# Grafana-based Analysis ```eval_rst .. toctree:: @@ -65,6 +65,93 @@ The uniform color coding is applied to most visualizations (bars, table, diagram ![Grafana GUI Global Variables](images/global_variables.png) +## Grafana GUI Import +The omniperf database `--import` option imports the raw profiling data to Grafana's backend MongoDB database. This step is only required for Grafana GUI based performance analysis. + +Each workload is imported to a separate database with the following naming convention: + + omniperf___ + +e.g., omniperf_asw_vcopy_mi200. + +Below is the sample command to import the *vcopy* profiling data. + +```shell +$ omniperf database --help +ROC Profiler: /usr/bin/rocprof + +usage: + +omniperf database [connection options] + + + +------------------------------------------------------------------------------- + +Examples: + + omniperf database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/ + + omniperf database --remove -H pavii1 -u temp -w omniperf_asw_sample_mi200 + +------------------------------------------------------------------------------- + + + +Help: + -h, --help show this help message and exit + +General Options: + -v, --version show program's version number and exit + -V, --verbose Increase output verbosity + +Interaction Type: + -i, --import Import workload to Omniperf DB + -r, --remove Remove a workload from Omniperf DB + +Connection Options: + -H , --host Name or IP address of the server host. + -P , --port TCP/IP Port. (DEFAULT: 27018) + -u , --username Username for authentication. + -p , --password The user's password. (will be requested later if it's not set) + -t , --team Specify Team prefix. + -w , --workload Specify name of workload (to remove) or path to workload (to import) + -k , --kernelVerbose Specify Kernel Name verbose level 1-5. + Lower the level, shorter the kernel name. (DEFAULT: 2) (DISABLE: 5) +``` + +**omniperf import for vcopy:** +```shell +$ omniperf database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/ +ROC Profiler: /usr/bin/rocprof + +-------- +Import Profiling Results +-------- + +Pulling data from /home/amd/xlu/test/workloads/vcopy/mi200 +The directory exists +Found sysinfo file +KernelName shortening enabled +Kernel name verbose level: 2 +Password: +Password recieved +-- Conversion & Upload in Progress -- + 0%| | 0/11 [00:00 Find install for alternative distros [here](https://www.mongodb.com/download-center/database-tools/releases/archive) @@ -177,3 +177,38 @@ $ sudo docker volume create --driver local --opt type=none --opt device=/usr/loc $ sudo docker-compose build $ sudo docker-compose up -d ``` +> Note that TCP ports for Grafana (4000) and MongoDB (27017) in the docker container are mapped to 14000 and 27018, respectively, on the host side. + +### Setup Grafana Instance +Once you've launced your docker container you should be able to reach Grafana at **http://\:1400**. The default login credentials for the first-time Grafana setup are: + +- Username: **admin** +- Password: **admin** + +![Grafana Welcome Page](images/grafana_welcome.png) + +MongoDB Datasource Configuration + +The MongoDB Datasource shall be configured prior to the first-time use. Navigate to Grafana's Configuration page (shown below) to add the **Omniperf Data** connection. + +![Omniperf Datasource Config](images/datasource_config.png) + +Configure the following fields in the datasource: + +- HTTP URL: set to *http://localhost:3333* +- MongoDB URL: set to *mongodb://temp:temp123@\:27018/admin?authSource=admin* +- Database Name: set to *admin* + +After properly configuring these fields click **Save & Test** to make sure your connection is successful. + +> Note to avoid potential DNS issue, one may need to use the actual IP address for the host node in the MongoDB URL. + +![Datasource Settings](images/datasource_settings.png) + +Omniperf Dashboard Import + +From *Create* → *Import*, (as seen below) upload the dashboard file, `/dashboards/Omniperf_v{__VERSION__}_pub.json`, from the Omniperf tarball. + +Edit both the Dashboard Name and the Unique Identifier (UID) to uniquely identify the dashboard he/she will use. Click Import to finish the process. + +![Import Dashboard](images/import_dashboard.png) \ No newline at end of file diff --git a/src/docs/performance_analysis.md b/src/docs/performance_analysis.md index 729ab64284..3e3e1cb654 100644 --- a/src/docs/performance_analysis.md +++ b/src/docs/performance_analysis.md @@ -1,4 +1,4 @@ -# Omniperf Performance Analysis +# Performance Profiling ```eval_rst .. toctree:: @@ -348,90 +348,3 @@ Dispatch Selection: ['0'] IP Blocks: All ... ... ``` - -## Omniperf Grafana GUI Import -The omniperf database `--import` option imports the raw profiling data to Grafana's backend MongoDB database. This step is only required for Grafana GUI based performance analysis. - -Each workload is imported to a separate database with the following naming convention: - - omniperf___ - -e.g., omniperf_asw_vcopy_mi200. - -Below is the sample command to import the *vcopy* profiling data. - -```shell -$ omniperf database --help -ROC Profiler: /usr/bin/rocprof - -usage: - -omniperf database [connection options] - - - -------------------------------------------------------------------------------- - -Examples: - - omniperf database --import -H pavii1 -u amd -t asw -w workloads/vcopy/mi200/ - - omniperf database --remove -H pavii1 -u amd -w omniperf_asw_sample_mi200 - -------------------------------------------------------------------------------- - - - -Help: - -h, --help show this help message and exit - -General Options: - -v, --version show program's version number and exit - -V, --verbose Increase output verbosity - -Interaction Type: - -i, --import Import workload to Omniperf DB - -r, --remove Remove a workload from Omniperf DB - -Connection Options: - -H , --host Name or IP address of the server host. - -P , --port TCP/IP Port. (DEFAULT: 27018) - -u , --username Username for authentication. - -p , --password The user's password. (will be requested later if it's not set) - -t , --team Specify Team prefix. - -w , --workload Specify name of workload (to remove) or path to workload (to import) - -k , --kernelVerbose Specify Kernel Name verbose level 1-5. - Lower the level, shorter the kernel name. (DEFAULT: 2) (DISABLE: 5) -``` - -**omniperf import for vcopy:** -```shell -$ omniperf database --import -H pavii1 -u amd -t asw -w workloads/vcopy/mi200/ -ROC Profiler: /usr/bin/rocprof - --------- -Import Profiling Results --------- - -Pulling data from /home/amd/xlu/test/workloads/vcopy/mi200 -The directory exists -Found sysinfo file -KernelName shortening enabled -Kernel name verbose level: 2 -Password: -Password recieved --- Conversion & Upload in Progress -- - 0%| | 0/11 [00:00` +``` + +When no filters are applied, users will see five basic sections derived from their application's profiling data: + +1. Memory Chart Analysis +2. Empirical Roofline Analysis +3. Top Stats (Top Kernel Statistics) +4. System Info +5. System Speed-of-Light + +To dive deeper, use the top drop down menus to isolate particular +kernel(s) or dispatch(s). You will then see the web page update with +metrics specific to the filter you've applied. + +Once you have applied a filter, you will also see several additional +sections become available with detailed metrics specific to that area +of AMD hardware. These detailed sections mirror the data displayed in +Omniperf's [Grafana +interface](https://amdresearch.github.io/omniperf/grafana_analyzer.html#). + + diff --git a/src/omniperf b/src/omniperf index d483f0bc75..b21ec78cd2 100755 --- a/src/omniperf +++ b/src/omniperf @@ -43,10 +43,11 @@ from common import ( OMNIPERF_HOME, PROG, SOC_LIST, - VER, DISTRO_MAP, ) # Import global variables +from common import getVersion + ################################################ # Helper Functions ################################################ @@ -305,7 +306,7 @@ def run_prof(fname, workload_dir, perfmon_dir, cmd, verbose): ) -def omniperf_profile(args): +def omniperf_profile(args,VER): # Verify valid target if args.target not in SOC_LIST: parse.print_help(sys.stderr) @@ -398,6 +399,8 @@ def omniperf_profile(args): path_to_binary, "-o", workload_dir + "/" + "roofline.csv", + "-d", + str(args.device), ] ) @@ -418,6 +421,9 @@ def main(): parse(my_parser) args = my_parser.parse_args() + vData = getVersion() + VER = vData['version'] + if args.mode == None: throw_parse_error( my_parser, @@ -515,8 +521,8 @@ def main(): # Profile only else: - print("\n--------\nProfile only\n--------\n") - omniperf_profile(args) + print("\n-------------\nProfile only\n-------------\n") + omniperf_profile(args,VER) ############## # DATABASE MODE diff --git a/src/omniperf_cli/omniperf_cli.py b/src/omniperf_cli/omniperf_cli.py index bf900c9d27..93b26bd618 100644 --- a/src/omniperf_cli/omniperf_cli.py +++ b/src/omniperf_cli/omniperf_cli.py @@ -175,9 +175,7 @@ def omniperf_cli(args): args.path[0][0] ) # create mega df is_gui = False - # parser.load_table_data( - # runs[args.path[0][0]], args.path[0][0], is_gui, args.g - # ) # create the loaded table + parser.load_kernel_top(runs[args.path[0][0]], args.path[0][0]) input_filters = { "kernel": runs[args.path[0][0]].filter_kernel_ids, @@ -217,7 +215,7 @@ def omniperf_cli(args): runs[d[0]].raw_pmc = file_io.create_df_pmc(d[0]) # creates mega dataframe is_gui = False parser.load_table_data( - runs[d[0]], d[0], is_gui, args.g + runs[d[0]], d[0], is_gui, args.g, args.verbose ) # create the loaded table if args.list_kernels: tty.show_kernels(runs, archConfigs["gfx90a"], output, args.decimal) diff --git a/src/omniperf_cli/utils/gui.py b/src/omniperf_cli/utils/gui.py index cbff21927c..491e2d193f 100644 --- a/src/omniperf_cli/utils/gui.py +++ b/src/omniperf_cli/utils/gui.py @@ -29,6 +29,7 @@ from dash.dash_table import FormatTemplate from dash.dash_table.Format import Format, Scheme, Symbol from dash import html, dash_table from dash.dependencies import Input, Output, State +import dash_bootstrap_components as dbc from dash import dcc import plotly.express as px @@ -307,9 +308,7 @@ def build_layout( Build gui layout """ comparable_columns = parser.build_comparable_columns(time_unit) - base_run, base_data = next(iter(runs.items())) - app.layout = html.Div(style={"backgroundColor": "rgb(50, 50, 50)" if IS_DARK else ""}) filt_kernel_names = [] @@ -319,8 +318,17 @@ def build_layout( app.layout.children = html.Div( children=[ - get_header(runs[path_to_dir].raw_pmc, input_filters, filt_kernel_names), - html.Div(id="container", children=[]), + dbc.Spinner( + children=[ + get_header( + runs[path_to_dir].raw_pmc, input_filters, filt_kernel_names + ), + html.Div(id="container", children=[]), + ], + fullscreen=True, + color="primary", + spinner_style={"width": "6rem", "height": "6rem"}, + ) ] ) @@ -333,12 +341,13 @@ def build_layout( ) def generate_from_filter(disp_filt, kernel_filter, gcd_filter, div_children): runs[path_to_dir].dfs = copy.deepcopy(archConfigs.dfs) # reset the equations + panel_configs = copy.deepcopy(archConfigs.panel_configs) # Generate original raw df runs[path_to_dir].raw_pmc = file_io.create_df_pmc(path_to_dir) - if verbose: + if verbose >= 1: print("disp-filter is ", disp_filt) print("kernel-filter is ", kernel_filter) - print("gpu-filter is ", gcd_filter) + print("gpu-filter is ", gcd_filter, "\n") runs[path_to_dir].filter_kernel_ids = kernel_filter runs[path_to_dir].filter_gpu_ids = gcd_filter runs[path_to_dir].filter_dispatch_ids = disp_filt @@ -351,11 +360,27 @@ def build_layout( time_unit, num_results, ) - # Evaluate metrics and table data from the raw df is_gui = True + # Only display basic metrics if no filters are applied + if not (disp_filt or kernel_filter or gcd_filter): + temp = {} + keep = [1, 201, 101, 1901] + for key in runs[path_to_dir].dfs: + if keep.count(key) != 0: + temp[key] = runs[path_to_dir].dfs[key] + + runs[path_to_dir].dfs = temp + temp = {} + keep = [0, 100, 200, 1900] + for key in panel_configs: + if keep.count(key) != 0: + temp[key] = panel_configs[key] + panel_configs = temp + parser.load_table_data( - runs[path_to_dir], path_to_dir, True, debug + runs[path_to_dir], path_to_dir, True, debug, verbose ) # Note: All the filtering happens in this function + div_children = [] div_children.append( get_memchart(archConfigs.panel_configs[1900]["data source"], base_data) @@ -369,7 +394,7 @@ def build_layout( ) ) # Iterate over each section as defined in panel configs - for panel_id, panel in archConfigs.panel_configs.items(): + for panel_id, panel in panel_configs.items(): title = str(panel_id // 100) + ". " + panel["title"] section_title = ( panel["title"] diff --git a/src/omniperf_cli/utils/gui_components/roofline.py b/src/omniperf_cli/utils/gui_components/roofline.py index ee68e15762..ec33d7b231 100644 --- a/src/omniperf_cli/utils/gui_components/roofline.py +++ b/src/omniperf_cli/utils/gui_components/roofline.py @@ -183,7 +183,7 @@ def get_roofline(path_to_dir, ret_df, verbose): # Generate roofline plots print("Path: ", path_to_dir) ai_data = roofline_calc.plot_application("kernels", ret_df, verbose) - if verbose: + if verbose >= 1: # print AI data for each mem level for i in ai_data: print(i, "->", ai_data[i]) diff --git a/src/omniperf_cli/utils/parser.py b/src/omniperf_cli/utils/parser.py index de416ac174..d64988b17c 100644 --- a/src/omniperf_cli/utils/parser.py +++ b/src/omniperf_cli/utils/parser.py @@ -650,7 +650,6 @@ def apply_filters(workload, is_gui, debug): # NB: support ignoring the 1st n dispatched execution by '> n' # The better way may be parsing python slice string for d in workload.filter_dispatch_ids: - print("len of ret_df is ", len(ret_df)) if int(d) > len(ret_df) - 2: # subtract 2 bc of the two header rows print("{} is an invalid dispatch id.".format(d)) sys.exit(1) @@ -674,12 +673,7 @@ def apply_filters(workload, is_gui, debug): return ret_df -def load_table_data(workload, dir, is_gui, debug): - """ - Load data for all "raw_csv_table". - Calculate mertric value for all "metric_table". - """ - +def load_kernel_top(workload, dir): # NB: # - Do pmc_kernel_top.csv loading before eval_metric because we need the kernel names. # - There might be a better way/timing to load raw_csv_table. @@ -698,9 +692,16 @@ def load_table_data(workload, dir, is_gui, debug): # All transposed columns should be marked with a general header, # so tty could detect them and show them correctly in comparison. tmp[id].columns = ["Info"] - workload.dfs.update(tmp) + +def load_table_data(workload, dir, is_gui, debug, verbose): + """ + Load data for all "raw_csv_table". + Calculate mertric value for all "metric_table". + """ + load_kernel_top(workload, dir) + eval_metric( workload.dfs, workload.dfs_type, @@ -715,9 +716,11 @@ def load_table_data(workload, dir, is_gui, debug): out_path = os.path.join(dir, name) try: os.mkdir(out_path) - print("Created a Saved Analysis folder") + if verbose >= 1: + print("Created a Saved Analysis folder") except OSError as error: - print("Saved Analysis folder exists") + if verbose >= 1: + print("Saved Analysis folder exists") for id, df in workload.dfs.items(): if "coll_level" in list(df.columns): df = df.drop(["coll_level", "Tips"], axis=1) diff --git a/src/omniperf_cli/utils/roofline_calc.py b/src/omniperf_cli/utils/roofline_calc.py index 93f6f6670f..1f49c7dde2 100644 --- a/src/omniperf_cli/utils/roofline_calc.py +++ b/src/omniperf_cli/utils/roofline_calc.py @@ -239,7 +239,7 @@ def plot_application(sortType, ret_df, verbose): avgDuration / calls, ) ) - if verbose: + if verbose >= 2: print( "Just added {} to AI_Data at index {}. # of calls: {}".format( kernelName, index, calls @@ -299,7 +299,7 @@ def plot_application(sortType, ret_df, verbose): + (row["SQ_INSTS_VALU_MFMA_MOPS_F64"] * 512) ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped total_flops at index {}".format(index)) pass try: @@ -327,7 +327,7 @@ def plot_application(sortType, ret_df, verbose): ) ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped valu_flops at index {}".format(index)) pass @@ -338,7 +338,7 @@ def plot_application(sortType, ret_df, verbose): mfma_flops_f64 += row["SQ_INSTS_VALU_MFMA_MOPS_F64"] * 512 mfma_iops_i8 += row["SQ_INSTS_VALU_MFMA_MOPS_I8"] * 512 except KeyError: - if verbose: + if verbose >= 2: print("Skipped mfma ops at index {}".format(index)) pass @@ -347,14 +347,14 @@ def plot_application(sortType, ret_df, verbose): (row["SQ_LDS_IDX_ACTIVE"] - row["SQ_LDS_BANK_CONFLICT"]) * 4 * L2_BANKS ) # L2_BANKS = 32 (since assuming mi200) except KeyError: - if verbose: + if verbose >= 2: print("Skipped lds_data at index {}".format(index)) pass try: L1cache_data += row["TCP_TOTAL_CACHE_ACCESSES_sum"] * 64 except KeyError: - if verbose: + if verbose >= 2: print("Skipped L1cache_data at index {}".format(index)) pass @@ -366,7 +366,7 @@ def plot_application(sortType, ret_df, verbose): + row["TCP_TCC_READ_REQ_sum"] * 64 ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped L2cache_data at index {}".format(index)) pass try: @@ -377,7 +377,7 @@ def plot_application(sortType, ret_df, verbose): + ((row["TCC_EA_WRREQ_sum"] - row["TCC_EA_WRREQ_64B_sum"]) * 32) ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped hbm_data at index {}".format(index)) pass diff --git a/src/parser.py b/src/parser.py index 6559e7dc0b..a920b428bc 100644 --- a/src/parser.py +++ b/src/parser.py @@ -26,11 +26,16 @@ from common import ( OMNIPERF_HOME, PROG, SOC_LIST, - VER, ) # Import global variables +from common import getVersion, getVersionDisplay def parse(my_parser): + + # versioning info + vData = getVersion() + versionString = getVersionDisplay(vData["version"], vData["sha"], vData["mode"]) + # ----------------------------------------- # Parse arguments (dependent on mode) # ----------------------------------------- @@ -40,9 +45,7 @@ def parse(my_parser): general_group = my_parser.add_argument_group("General Options") my_parser._positionals.title = "Modes" my_parser._optionals.title = "Help" - general_group.add_argument( - "-v", "--version", action="version", version=PROG + " (" + VER + ")" - ) + general_group.add_argument("-v", "--version", action="version", version=versionString) subparsers = my_parser.add_subparsers( dest="mode", help="Select mode of interaction with the target application:" @@ -76,13 +79,10 @@ def parse(my_parser): profile_group = profile_parser.add_argument_group("Profile Options") roofline_group = profile_parser.add_argument_group("Standalone Roofline Options") + general_group.add_argument("-v", "--version", action="version", version=versionString) general_group.add_argument( - "-v", "--version", action="version", version="%(PROG)s (" + VER + ")" + "-V", "--verbose", help="Increase output verbosity", action="count", default=0 ) - general_group.add_argument( - "-V", "--verbose", help="Increase output verbosity", action="store_true" - ) - profile_group.add_argument( "-n", "--name", @@ -211,8 +211,8 @@ def parse(my_parser): \n\n------------------------------------------------------------------------------- \nExamples: - \n\tomniperf database --import -H pavii1 -u amd -t asw -w workloads/vcopy/mi200/ - \n\tomniperf database --remove -H pavii1 -u amd -w omniperf_asw_sample_mi200 + \n\tomniperf database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/ + \n\tomniperf database --remove -H pavii1 -u temp -w omniperf_asw_sample_mi200 \n-------------------------------------------------------------------------------\n """, prog="tool", @@ -227,11 +227,9 @@ def parse(my_parser): interaction_group = db_parser.add_argument_group("Interaction Type") connection_group = db_parser.add_argument_group("Connection Options") + general_group.add_argument("-v", "--version", action="version", version=versionString) general_group.add_argument( - "-v", "--version", action="version", version="%(PROG)s (" + VER + ")" - ) - general_group.add_argument( - "-V", "--verbose", help="Increase output verbosity", action="store_true" + "-V", "--verbose", help="Increase output verbosity", action="count", default=0 ) interaction_group.add_argument( @@ -327,11 +325,9 @@ def parse(my_parser): general_group = analyze_parser.add_argument_group("General Options") analyze_group = analyze_parser.add_argument_group("Analyze Options") + general_group.add_argument("-v", "--version", action="version", version=versionString) general_group.add_argument( - "-v", "--version", action="version", version="%(PROG)s (" + VER + ")" - ) - general_group.add_argument( - "-V", "--verbose", help="Increase output verbosity", action="store_true" + "-V", "--verbose", help="Increase output verbosity", action="count", default=0 ) analyze_group.add_argument( diff --git a/src/utils/plot_roofline.py b/src/utils/plot_roofline.py index 496c5bffae..d1d0958cc7 100644 --- a/src/utils/plot_roofline.py +++ b/src/utils/plot_roofline.py @@ -294,7 +294,7 @@ def plot_application(inputs, verbose): avgDuration / calls, ) ) - if verbose: + if verbose >= 2: print( "Just added {} to AI_Data at index {}. # of calls: {}".format( kernelName, index, calls @@ -354,7 +354,7 @@ def plot_application(inputs, verbose): + (row["SQ_INSTS_VALU_MFMA_MOPS_F64"] * 512) ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped total_flops at index {}".format(index)) pass try: @@ -382,7 +382,7 @@ def plot_application(inputs, verbose): ) ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped valu_flops at index {}".format(index)) pass @@ -393,7 +393,7 @@ def plot_application(inputs, verbose): mfma_flops_f64 += row["SQ_INSTS_VALU_MFMA_MOPS_F64"] * 512 mfma_iops_i8 += row["SQ_INSTS_VALU_MFMA_MOPS_I8"] * 512 except KeyError: - if verbose: + if verbose >= 2: print("Skipped mfma ops at index {}".format(index)) pass @@ -402,14 +402,14 @@ def plot_application(inputs, verbose): (row["SQ_LDS_IDX_ACTIVE"] - row["SQ_LDS_BANK_CONFLICT"]) * 4 * L2_BANKS ) # L2_BANKS = 32 (since assuming mi200) except KeyError: - if verbose: + if verbose >= 2: print("Skipped lds_data at index {}".format(index)) pass try: L1cache_data += row["TCP_TOTAL_CACHE_ACCESSES_sum"] * 64 except KeyError: - if verbose: + if verbose >= 2: print("Skipped L1cache_data at index {}".format(index)) pass @@ -421,7 +421,7 @@ def plot_application(inputs, verbose): + row["TCP_TCC_READ_REQ_sum"] * 64 ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped L2cache_data at index {}".format(index)) pass try: @@ -432,7 +432,7 @@ def plot_application(inputs, verbose): + ((row["TCC_EA_WRREQ_sum"] - row["TCC_EA_WRREQ_64B_sum"]) * 32) ) except KeyError: - if verbose: + if verbose >= 2: print("Skipped hbm_data at index {}".format(index)) pass diff --git a/tests/generate_test_analyze_workloads.py b/tests/generate_test_analyze_workloads.py index 20801a7f8f..66a0f49751 100644 --- a/tests/generate_test_analyze_workloads.py +++ b/tests/generate_test_analyze_workloads.py @@ -35,7 +35,7 @@ if __name__ == "__main__": test = ( "\n\ndef test_import_" + workload_name - + "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', 'amd', '-p', 'amd123', '-t', 'asw', '-w', '" + + "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', 'temp', '-p', 'temp123', '-t', 'asw', '-w', '" + workload + "/mi100']): omniperf.main()" ) @@ -65,7 +65,7 @@ if __name__ == "__main__": test = ( "\n\ndef test_" + workload_name - + "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', '-p', 'amd123', 'amd', '-t', 'asw', '-w', '" + + "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', 'temp', '-p', 'temp123', '-t', 'asw', '-w', '" + workload + "/mi100']): omniperf.main()" ) diff --git a/tests/test_import_workloads.py b/tests/test_import_workloads.py index 3283091fb7..5a0f2f11f3 100644 --- a/tests/test_import_workloads.py +++ b/tests/test_import_workloads.py @@ -19,9 +19,9 @@ def test_import_D_str_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -42,8 +42,8 @@ def test_D_str_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -63,9 +63,9 @@ def test_import_dev01p3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -85,9 +85,9 @@ def test_import_SQC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -108,8 +108,8 @@ def test_SQC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -129,9 +129,9 @@ def test_import_Axes2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -152,8 +152,8 @@ def test_Axes2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -173,9 +173,9 @@ def test_import_no_roof_SQ_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -196,8 +196,8 @@ def test_no_roof_SQ_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -217,9 +217,9 @@ def test_import_CPF_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -240,8 +240,8 @@ def test_CPF_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -261,9 +261,9 @@ def test_import_no_roof_LDS_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -284,8 +284,8 @@ def test_no_roof_LDS_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -305,9 +305,9 @@ def test_import_D_str_inv4_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -328,8 +328,8 @@ def test_D_str_inv4_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -350,8 +350,8 @@ def test_roof_only_K_int_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -371,9 +371,9 @@ def test_import_no_roof_SPI_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -394,8 +394,8 @@ def test_no_roof_SPI_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -415,9 +415,9 @@ def test_import_no_roof_K_str_valid_2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -438,8 +438,8 @@ def test_no_roof_K_str_valid_2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -459,9 +459,9 @@ def test_import_no_roof_mixbench1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -482,8 +482,8 @@ def test_no_roof_mixbench1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -503,9 +503,9 @@ def test_import_no_roof_TA_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -526,8 +526,8 @@ def test_no_roof_TA_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -547,9 +547,9 @@ def test_import_no_roof_CPF_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -570,8 +570,8 @@ def test_no_roof_CPF_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -591,9 +591,9 @@ def test_import_no_roof_CPC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -614,8 +614,8 @@ def test_no_roof_CPC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -635,9 +635,9 @@ def test_import_K_str_inv3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -658,8 +658,8 @@ def test_K_str_inv3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -679,9 +679,9 @@ def test_import_LDS_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -702,8 +702,8 @@ def test_LDS_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -723,9 +723,9 @@ def test_import_no_roof_K_str_valid_3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -746,8 +746,8 @@ def test_roof_only_D_int_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -768,8 +768,8 @@ def test_roof_only_K_str_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -790,8 +790,8 @@ def test_roof_only_SQC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -811,9 +811,9 @@ def test_import_no_roof_Axes2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -834,8 +834,8 @@ def test_no_roof_Axes2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -855,9 +855,9 @@ def test_import_HBM_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -878,8 +878,8 @@ def test_HBM_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -900,8 +900,8 @@ def test_roof_only_TA_CPC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -922,8 +922,8 @@ def test_roof_only_D_val_int_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -943,9 +943,9 @@ def test_import_no_roof_L2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -966,8 +966,8 @@ def test_no_roof_L2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -987,9 +987,9 @@ def test_import_L2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1010,8 +1010,8 @@ def test_L2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1031,9 +1031,9 @@ def test_import_no_roof_dev1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1054,8 +1054,8 @@ def test_no_roof_dev1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1076,8 +1076,8 @@ def test_roof_only_K_str_inv3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1098,8 +1098,8 @@ def test_roof_only_K_str_valid_1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1120,8 +1120,8 @@ def test_roof_only_CPC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1141,9 +1141,9 @@ def test_import_no_roof_Axes3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1164,8 +1164,8 @@ def test_no_roof_Axes3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1185,9 +1185,9 @@ def test_import_no_roof_D_str_inv3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1208,8 +1208,8 @@ def test_no_roof_D_str_inv3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1229,9 +1229,9 @@ def test_import_no_roof_D_int_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1252,8 +1252,8 @@ def test_no_roof_D_int_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1273,9 +1273,9 @@ def test_import_TD_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1296,8 +1296,8 @@ def test_TD_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1318,8 +1318,8 @@ def test_roof_only_D_int_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1339,9 +1339,9 @@ def test_import_D_val_int2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1362,8 +1362,8 @@ def test_D_val_int2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1383,9 +1383,9 @@ def test_import_no_roof_mixbench2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1406,8 +1406,8 @@ def test_no_roof_mixbench2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1428,8 +1428,8 @@ def test_roof_only_SPI_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1449,9 +1449,9 @@ def test_import_no_roof_D_val_int2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1472,8 +1472,8 @@ def test_no_roof_D_val_int2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1493,9 +1493,9 @@ def test_import_K_str_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1516,8 +1516,8 @@ def test_K_str_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1538,8 +1538,8 @@ def test_roof_only_TA_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1559,9 +1559,9 @@ def test_import_K_str_valid_3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1581,9 +1581,9 @@ def test_import_SQ_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1604,8 +1604,8 @@ def test_SQ_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1625,9 +1625,9 @@ def test_import_no_roof_D_str_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1648,8 +1648,8 @@ def test_no_roof_D_str_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1669,9 +1669,9 @@ def test_import_no_roof_dev01p3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1692,8 +1692,8 @@ def test_roof_only_D_val_int2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1713,9 +1713,9 @@ def test_import_no_roof_D_str_inv4_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1736,8 +1736,8 @@ def test_no_roof_D_str_inv4_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1758,8 +1758,8 @@ def test_roof_only_CPF_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1779,9 +1779,9 @@ def test_import_mixbench_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1802,8 +1802,8 @@ def test_mixbench_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1824,8 +1824,8 @@ def test_roof_only_D_str_inv4_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1845,9 +1845,9 @@ def test_import_no_roof_kernels_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1868,8 +1868,8 @@ def test_no_roof_kernels_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1890,8 +1890,8 @@ def test_roof_only_TCC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1911,9 +1911,9 @@ def test_import_TA_CPC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -1934,8 +1934,8 @@ def test_TA_CPC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1956,8 +1956,8 @@ def test_roof_only_SQ_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -1977,9 +1977,9 @@ def test_import_K_int_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2000,8 +2000,8 @@ def test_K_int_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2022,8 +2022,8 @@ def test_roof_only_TCP_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2044,8 +2044,8 @@ def test_roof_only_K_str_valid_2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2065,9 +2065,9 @@ def test_import_D_int_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2088,8 +2088,8 @@ def test_D_int_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2110,8 +2110,8 @@ def test_roof_only_Axes3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2131,9 +2131,9 @@ def test_import_dev0_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2154,8 +2154,8 @@ def test_dev0_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2176,8 +2176,8 @@ def test_roof_only_K_str_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2197,9 +2197,9 @@ def test_import_Axes1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2220,8 +2220,8 @@ def test_Axes1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2242,8 +2242,8 @@ def test_roof_only_HBM_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2263,9 +2263,9 @@ def test_import_D_val_int_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2286,8 +2286,8 @@ def test_D_val_int_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2307,9 +2307,9 @@ def test_import_no_roof_TCC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2330,8 +2330,8 @@ def test_no_roof_TCC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2351,9 +2351,9 @@ def test_import_no_roof_SQC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2374,8 +2374,8 @@ def test_no_roof_SQC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2396,8 +2396,8 @@ def test_roof_only_TD_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2417,9 +2417,9 @@ def test_import_no_roof_K_int_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2440,8 +2440,8 @@ def test_no_roof_K_int_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2461,9 +2461,9 @@ def test_import_no_roof_Axes1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2484,8 +2484,8 @@ def test_no_roof_Axes1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2505,9 +2505,9 @@ def test_import_SPI_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2528,8 +2528,8 @@ def test_SPI_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2550,8 +2550,8 @@ def test_roof_only_D_str_inv3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2571,9 +2571,9 @@ def test_import_no_roof_D_val_int_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2594,8 +2594,8 @@ def test_no_roof_D_val_int_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2615,9 +2615,9 @@ def test_import_K_str_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2638,8 +2638,8 @@ def test_K_str_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2659,9 +2659,9 @@ def test_import_CPC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2682,8 +2682,8 @@ def test_CPC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2704,8 +2704,8 @@ def test_roof_only_dispatches_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2726,8 +2726,8 @@ def test_roof_only_mixbench2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2747,9 +2747,9 @@ def test_import_Axes4_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2770,8 +2770,8 @@ def test_Axes4_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2791,9 +2791,9 @@ def test_import_no_roof_TCP_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2814,8 +2814,8 @@ def test_no_roof_TCP_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2836,8 +2836,8 @@ def test_roof_only_LDS_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2857,9 +2857,9 @@ def test_import_invdev_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2880,8 +2880,8 @@ def test_invdev_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2901,9 +2901,9 @@ def test_import_no_roof_dev0_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -2924,8 +2924,8 @@ def test_no_roof_dev0_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2946,8 +2946,8 @@ def test_roof_only_Axes1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2968,8 +2968,8 @@ def test_roof_only_invdev_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -2990,8 +2990,8 @@ def test_roof_only_D_str_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3011,9 +3011,9 @@ def test_import_no_roof_K_str_inv3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3034,8 +3034,8 @@ def test_no_roof_K_str_inv3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3055,9 +3055,9 @@ def test_import_no_roof_K_str_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3078,8 +3078,8 @@ def test_no_roof_K_str_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3099,9 +3099,9 @@ def test_import_D_str_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3122,8 +3122,8 @@ def test_D_str_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3143,9 +3143,9 @@ def test_import_kernels_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3166,8 +3166,8 @@ def test_kernels_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3187,9 +3187,9 @@ def test_import_no_roof_Axes4_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3210,8 +3210,8 @@ def test_no_roof_Axes4_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3231,9 +3231,9 @@ def test_import_CMD_INV_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3253,9 +3253,9 @@ def test_import_K_int_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3276,8 +3276,8 @@ def test_K_int_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3297,9 +3297,9 @@ def test_import_mixbench2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3320,8 +3320,8 @@ def test_mixbench2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3342,8 +3342,8 @@ def test_roof_only_Double_N_flag_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3363,9 +3363,9 @@ def test_import_no_roof_TD_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3386,8 +3386,8 @@ def test_no_roof_TD_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3407,9 +3407,9 @@ def test_import_TCC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3430,8 +3430,8 @@ def test_TCC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3452,8 +3452,8 @@ def test_roof_only_dev0_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3473,9 +3473,9 @@ def test_import_no_roof_D_str_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3496,8 +3496,8 @@ def test_no_roof_D_str_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3518,8 +3518,8 @@ def test_roof_only_L2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3539,9 +3539,9 @@ def test_import_no_roof_TA_CPC_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3562,8 +3562,8 @@ def test_no_roof_TA_CPC_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3583,9 +3583,9 @@ def test_import_no_roof_Double_N_flag_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3606,8 +3606,8 @@ def test_no_roof_Double_N_flag_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3627,9 +3627,9 @@ def test_import_Double_N_flag_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3650,8 +3650,8 @@ def test_Double_N_flag_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3672,8 +3672,8 @@ def test_roof_only_K_int_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3693,9 +3693,9 @@ def test_import_no_roof_K_str_valid_1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3716,8 +3716,8 @@ def test_no_roof_K_str_valid_1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3738,8 +3738,8 @@ def test_roof_only_mixbench1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3759,9 +3759,9 @@ def test_import_dev1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3782,8 +3782,8 @@ def test_dev1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3803,9 +3803,9 @@ def test_import_no_roof_K_str_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3826,8 +3826,8 @@ def test_no_roof_K_str_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3847,9 +3847,9 @@ def test_import_K_str_valid_1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3870,8 +3870,8 @@ def test_K_str_valid_1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3891,9 +3891,9 @@ def test_import_mixbench1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3914,8 +3914,8 @@ def test_mixbench1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3935,9 +3935,9 @@ def test_import_no_roof_CMD_INV_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -3958,8 +3958,8 @@ def test_roof_only_D_str_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -3979,9 +3979,9 @@ def test_import_no_roof_HBM_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4002,8 +4002,8 @@ def test_no_roof_HBM_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4024,8 +4024,8 @@ def test_roof_only_kernels_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4045,9 +4045,9 @@ def test_import_D_int_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4068,8 +4068,8 @@ def test_D_int_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4089,9 +4089,9 @@ def test_import_K_str_valid_2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4112,8 +4112,8 @@ def test_K_str_valid_2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4133,9 +4133,9 @@ def test_import_TCP_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4156,8 +4156,8 @@ def test_TCP_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4177,9 +4177,9 @@ def test_import_Axes3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4200,8 +4200,8 @@ def test_Axes3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4221,9 +4221,9 @@ def test_import_no_roof_invdev_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4244,8 +4244,8 @@ def test_no_roof_invdev_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4265,9 +4265,9 @@ def test_import_no_roof_dispatches_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4288,8 +4288,8 @@ def test_no_roof_dispatches_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4309,9 +4309,9 @@ def test_import_D_str_inv3_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4332,8 +4332,8 @@ def test_D_str_inv3_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4353,9 +4353,9 @@ def test_import_TA_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4376,8 +4376,8 @@ def test_TA_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4397,9 +4397,9 @@ def test_import_no_roof_D_int_inv1_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4420,8 +4420,8 @@ def test_no_roof_D_int_inv1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4441,9 +4441,9 @@ def test_import_dispatches_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4464,8 +4464,8 @@ def test_dispatches_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4486,8 +4486,8 @@ def test_roof_only_dev1_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w", @@ -4507,9 +4507,9 @@ def test_import_no_roof_K_int_inv2_mi100(): "-H", "localhost", "-u", - "amd", + "temp", "-p", - "amd123", + "temp123", "-t", "asw", "-w", @@ -4530,8 +4530,8 @@ def test_no_roof_K_int_inv2_mi100(): "localhost", "-u", "-p", - "amd123", - "amd", + "temp123", + "temp", "-t", "asw", "-w",