mlcommons / ck

Collective Mind (CM) is a small, modular, cross-platform and decentralized workflow automation framework with a human-friendly interface and reusable automation recipes to make it easier to build, run, benchmark and optimize applications and systems across diverse models, data sets, software and hardware
https://cKnowledge.org/install-cm-mlops
Apache License 2.0
600 stars 111 forks source link

running on ARM64? #1213

Open led555 opened 5 months ago

led555 commented 5 months ago

Hello, I have no idea what I'm doing. I'm trying to run on an ARM64 system, and I get the following errors:

I ran the loadgen install and everything worked fine, running the vision benchmarks, fails.

` C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\arm64\Microsoft.Common.CurrentVersion.targets(839,5): error : The BaseOutputPath/OutputPath property is not set for project 'VCTargetsPath.vcxproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='ARM64'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\Users\xxx\CM\repos\local\cache\38b305ec229b43d0\inference\loadgen\CMakeFiles\3.28.3\VCTargetsPath.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.07

Exit code: 1

-- Configuring incomplete, errors occurred!

CM error: Portable CM script failed (name = get-mlperf-inference-loadgen, return code = 1)`

gfursin commented 5 months ago

Hi! Can you provide the original CM command and the full log (including where you build loadgen), please?

I tested CM workflow to run MLPerf on Windows with x64 but I don't think we ever tried to run it with ARM64 on Windows (I don't have an access to such a platform) ...

It will be useful to add such a support! Thanks!

led555 commented 5 months ago

Hello,

It appears the loadgen is located here : C:\Users\xxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\mlperf_loadgen-4.0.dist-info

I buit loadgen from this location : C:\ML Commons benchmarking\inference-master\mlperf_inference\loadgen

when I run this command : cm run script "test mlperf-inference-win retinanet windows" , I get this:

` C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\arm64\Microsoft.Common.CurrentVersion.targets(839,5): error : The BaseOutputPath/OutputPath property is not set for project 'VCTargetsPath.vcxproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='ARM64'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\Users\xxx\CM\repos\local\cache\38b305ec229b43d0\inference\loadgen\CMakeFiles\3.28.3\VCTargetsPath.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.07

Exit code: 1

-- Configuring incomplete, errors occurred!

CM error: Portable CM script failed (name = get-mlperf-inference-loadgen, return code = 1)`

when I run this command : cmr "run mlperf inference generate-run-cmds _submission" --quiet --submitter="MLCommons" --hw_name=default --model=resnet50 --implementation=reference --backend=onnxruntime --device=cpu --scenario=Offline --adr.compiler.tags=gcc --target_qps=1 --category=edge --division=open , I get this :

`Path to the MLPerf inference benchmark configuration file: C:\Users\xxx\CM\repos\local\cache\38b305ec229b43d0\inference\mlperf.conf Path to MLPerf inference benchmark sources: C:\Users\xxx\CM\repos\local\cache\38b305ec229b43d0\inference

  * cm run script "get cl gcc"

CM error: no scripts were found with above tags (when variations ignored)! `

gfursin commented 5 months ago

I didn't have time to look at it yet (had several deadlines) but I remember that there was an issue with CM scripts running on Windows with paths that have spaces ... Do you think you can try to create a test user without spaces and use work directory also without spaces? Maybe it will help?

led555 commented 5 months ago

Hello,

I removed spaces from the file paths as much as I could. I still get this error:

"C:\Users\xxx\CM\repos\local\cache\e5c509c0e17e46e3\inference\loadgen\CMakeFiles\3.28.3\VCTargetsPath.vcxproj" (default target) (1) ->
(_CheckForInvalidConfigurationAndPlatform target) ->
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\arm64\Microsoft.Common.CurrentVersion.targets(839,5): error : The BaseOutputPath/OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='ARM64'.  You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\Users\xxx\CM\repos\local\cache\e5c509c0e17e46e3\inference\loadgen\CMakeFiles\3.28.3\VCTargetsPath.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.07

Exit code: 1

-- Configuring incomplete, errors occurred!

CM error: Portable CM script failed (name = get-mlperf-inference-loadgen, return code = 1)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Note that it may be a portability issue of a third-party tool or a native script wrapped and unified by this automation recipe (CM script). In such case, please report this issue with a full log at "https://github.com/mlcommons/ck". The CM concept is to collaboratively fix such issues inside portable CM scripts to make existing tools and native scripts more portable, interoperable and deterministic. Thank you!

led555 commented 5 months ago

do you think this path may be problematic?: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools...