Iterating host code: Parallella restarts

Any technical questions about the Epiphany chip and Parallella HW Platform.

Moderator: aolofsson

Re: Iterating host code: Parallella restarts

Postby ninlar » Fri Jun 23, 2017 11:36 pm

sebraa wrote:Use writes: Reads incur high latency; read requests travel at 12.5% speed only; reads do not allow bursts.


That is something I need to remember. Optimize algorithm for remote writes but local reads. I remember it being mentioned in the documentation. And there are three meshes cMesh, rMesh, and xMesh. The cMesh is for chip to chip writes and can do up to 8 bytes per cycle. While the rMesh is for reads and takes 8 cycles for one hop on the network. So if the core is multiple hops away it could take say 24 cycles to read that one byte. Whereas you could write 192 bytes in the same number of cycles.

I should comment out the e_read prototypes in the header to discourage use or cause them generate a warning or something when the warning level is increased to make it more obvious.

From the doc:
Optimization of Write Transactions over Read Transactions.

Writes are approximately 16x more efficient than reads for on-chip transactions. Programs should use the high write transaction
bandwidth and minimize inter-node, on-chip read transactions.
ninlar
 
Posts: 16
Joined: Wed Jun 21, 2017 11:40 pm

Re: Iterating host code: Parallella restarts

Postby sebraa » Sat Jun 24, 2017 9:07 am

ninlar wrote:While the rMesh is for reads and takes 8 cycles for one hop on the network. So if the core is multiple hops away it could take say 24 cycles to read that one byte. Whereas you could write 192 bytes in the same number of cycles.
To be fair, the rMesh only carries the read requests. The actual data is transmitted over the cMesh, like regular writes. Still, the overhead compared to writes is substantial.
sebraa
 
Posts: 495
Joined: Mon Jul 21, 2014 7:54 pm

Re: Iterating host code: Parallella restarts

Postby gordon » Tue Jun 27, 2017 7:25 am

The computation for speed for done for a single e_write instruction wherein I sent the address of first element of the array. So I do think all elements have consecutive addressing over here. Also how do i replace e_read with e_writes to reduce the time?
gordon
 
Posts: 24
Joined: Mon May 29, 2017 10:37 am

Previous

Return to Epiphany and Parallella Q & A

Who is online

Users browsing this forum: No registered users and 7 guests