-
Notifications
You must be signed in to change notification settings - Fork 409
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
VivadoAccelerator backend updates #508
Conversation
…' with VA backend build method
with tarfile.open(output_filename, "w:gz") as tar: | ||
tar.add(source_dir, arcname=os.path.basename(source_dir)) | ||
|
||
def _copy_wait_retry(src, dst, sleep=60): |
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.
Can you explain why this hack is necessary? Or, in other words, why isn't the build process blocking so that the package
can start only when we're sure the files are there?
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.
I observed cases where the call to os.system
returns before the file is written. I guess the process that writes the bitfile is detached.
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.
What guarantee do you have the the file is fully written when you try to copy it? Perhaps instead of os.system
we run subprocess.Popen()
because the object it returns has a wait()
. Not sure if will help if the main vivado process calls another one and exits.
I got rid of the So now the PR does:
|
…into va-write-fix
A few small things:
VivadoAcceleratorBackend
writer flow. In master branch, the writer flow for that backend is justVivadoBackend
's writer flow relabelled, so the extra files forVivadoAcceleratorBackend
aren't written out.VivadoAcceleratorBackend.make_bitfile
method withbuild(bitfile=True)
. This is an API change to make that workflow more consistent with the usualbuild
API (rather than requiring one call tobuild
then one call tomake_bitfile
)package
method to make a .tar.gz archive with all the necesary files for hardware inference - otherwise the user needs to do some finding and renaming of files themselves