coredevice: use device endian for kernel and RPC #1588
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ARTIQ Pull Request
Description of Changes
Use device endian for kernel and RPC protocol.
Note: This breaks the protocol for artiq-zynq, users must update the zynq firmware after this change.
This improves the performance of integer array transfer for zynq. For large integer array transfer, the throughput difference:
(I can't get stable result for small transfers from zeus, so comparing them would likely just be noise)
(updated after removing redundant allocation in firmware)
There is no visible effect for or1k as or1k uses big endian, and the bottlenect is the device side for transfer so little overhead in the host side did not reflect on the performance. This PR only affects kernel and RPC protocol, other protocols like coremgmt or analyzer would not be affected as they are not performance critical.
Improvement for or1k device to host integer array transfer is planned, and should be simple.
Related Issue
#1255 (comment)
Type of Changes
Steps (Choose relevant, delete irrelevant before submitting)
All Pull Requests
Code Changes
flake8
to check code style (follow PEP-8 style).flake8
has issues with parsing Migen/gateware code, ignore as necessary.Git Logistics
git rebase --interactive
). Merge/squash/fixup commits that just fix or amend previous commits. Remove unintended changes & cleanup. See tutorial.git show
). Format:Licensing
See copyright & licensing for more info.
ARTIQ files that do not contain a license header are copyrighted by M-Labs Limited and are licensed under LGPLv3+.