Comments (3)
As the image here shows the rx datapath provide a notification AXIS.
This is how it works
- when some bytes arrives at the stack and they are stored in the buffer (window) ready to be read by the application (in our case the CCLO). the stack sends a session ID and the amount of bytes ready.
- the user kernel (CCLO in this case) replies providing the session id and the number of bytes that he wants to read.
As a side note, the high level message that we have now carries at bits 32-63 the total number of bytes of the message.
What I propose to get past the RX FAN IN =1 is the following in the easy case.
The depacketizer waits for notifications from the stack.
When the first arrives the depacketizer gets the first bytes (which includes the header) and discovers the amount of bytes to be read.
It dequeue stack notifications to understand when new data have been received.
All data coming from different sessions are kept aside and they wait.
All data from the first active session are consumed up until last byte.
Then we move to next session.
We need to:
- avoid that we run out of memory in the network stack. Is data saved in DDR/HBM at the moment?
- (related to previous) avoid limiting number of ranks we can support
- avoid that this approach does leads to a deadlock (imagine you have to sum 2 buffers of 32 MB each coming from two external FPGAs. You can receive 1 MB each and sum them to create the resulting 32 MB result. If we receive 32MB from one and 32 from the other we may run out of space in the CCLO staging area (spare buffer))
- ensure that we handle properly the end of the message. (e.g. message of 5 MB. The stack notifies each time that 4MB arrives. The depacketizer needs to respect the boundaries and fetch only missing 1MB after first 4MB read. this because:
a. we need to be fair and serve other sessions
b. avoid mixing data coming from different sessions
from accl.
I can think of a FSM for that if you want
from accl.
Cloding, feature implemented in dev
from accl.
Related Issues (20)
- Scatter gives incorrect results when used with compression HOT 1
- XRT test suite skips too many tests HOT 1
- Repeated send/recv gets stuck HOT 4
- U200 compatibility HOT 1
- Migrate to other ZMQ library for C++ HOT 1
- Missing include for features.h HOT 3
- Deadlocks with "complex" communication patterns HOT 8
- Copy fails with Coyote implementation
- "lvalue required as left operand of assignment" when using Coyote buffer subscript operator
- Unit Tests hang and fail on dev branch HOT 2
- ETH messages received by rank 1 although not destination of message HOT 1
- A soft reset routine for the CCLO should be introduced and applied during initialization
- Address not mapped: 0x78 HOT 1
- Data transfer not working above 8 MB HOT 1
- Build system misconfiguration for refdesign with Coyote + RDMA + U250 HOT 2
- Enable multiple kernel builds with different configurations HOT 1
- Update firmware in Xclbin HOT 2
- Error in Building hardware for Alveou280 HOT 5
- Sim support for host buffers HOT 1
- Update to latest Vitis HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from accl.