-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add URI support to tarball path and xclbin path #1432
Conversation
462ca34
to
4d4eb42
Compare
use fsspec to enable xclbin's to be one of any URI protocol supported by the library or an installed add-on
it is the easy and safe thing to do as a first implementation. can revisit FileCache later
refactor `localize_xclbin` from the Vitis runner to `util.io.downloadURI()` and add some pytests
Co-authored-by: Filip Stamenkovic <92741622+filipstamenkovic-sifive@users.noreply.github.com>
awstools.py now depends on it via util.io
Co-authored-by: Abraham Gonzalez <abe.j.gonza@gmail.com>
* throw better exceptions when URI don't exist * remove forced check upgront for file:// URI to exist as this will be annoying when any neighbor hwdb entry could prevent runs * fix checking if server_hardware_config is a string or not * Please enter the commit message for your changes. Lines starting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pushing this toward the finish line. I only saw a couple of things I had questions or concerns about.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
small thing in comment above*
Uncaught 2 FPGA instance shutdown(s) detected for CI run: 4296740217. Verify CI state before submitting PR. |
…t_xclbin_filename, improve error handling around xbutil JSON split stderr/stdout
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again for getting this really implemented @sifive-benjamin-morse
deploy/util/io.py
Outdated
for attempt in range(retries): | ||
assert tries > 0, "tries argument must be larger than 0" | ||
for attempt in range(tries): | ||
rootLogger.debug(f"Download attempt {attempt+1} of {tries}: '{uri}' to '{lpath}'") | ||
try: | ||
fs, rpath = url_to_fs(uri) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure you want the url_to_fs()
call in the try block? It seems like exceptions arising here may be indicative of a larger issue that shouldn't be retried?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For background, these two runs:
- https://github.com/firesim/firesim/actions/runs/4301469200/jobs/7498730505
- https://github.com/firesim/firesim/actions/runs/4300595364/jobs/7496935845
fail for two different reasons, but on the same line:
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host firesim-ci-vitis-xclbins.s3.***.amazonaws.com:443 ssl:default [Name or service not known]
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host firesim-ci-vitis-xclbins.s3.***.amazonaws.com:443 ssl:default [Temporary failure in name resolution]
I added url_to_fs()
inside the block because I wasn't sure if it did the DNS resolution or not. I will move it out. Thanks for reviewing this
config_hwdb.yaml
to use URI's for thedriver_tar
andxclbin
keys.server_hardware_config
being a string.xclbin
(such asrun-linux-poweroff-vitis.py
) can now directly specify the URL as a URIRelated PRs / Issues
UI / API Impact
Allows much easier collaboration with new developers as pre-compiled resources can be put on the web simplifying first time runs.
Verilog / AGFI Compatibility
Should be no change.
Contributor Checklist
changelog:<topic>
label?ci:fpga-deploy
label?Please Backport
label?Reviewer Checklist (only modified by reviewer)
Note: to run CI on PRs from forks, comment
@Mergifyio copy main
and manage the change from the new PR.changelog:<topic>
label?