--
You received this message because you are subscribed to the Google Groups "FireSim" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firesim+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/58032719-3456-44fd-9547-8fab39d5f641n%40googlegroups.com.
Hey Steve and David,
For 1.14, we'll have Vitis support worked out + modifications to the firesim manager to support deploying to hosts that aren't AWS. As David points out, it's non-trivial to implement some of the features that need a high bandwidth link to the host CPU ("DMA" in bridge parlance). Anyways, part of this effort resolves around defining a host-abstraction layer such that people like David would have an easier time porting FIreSim to other hosts in the future. I'm hoping we can build a reasonable C library IF that the user can just link against the correct host implementation + chisel shells / vivado templates that would be intuitive to port to a different FPGA.
I think David's approach is a highly sensible one (and likely higher performance). I started working on a similar shell for U250, but switched to working on Vitis with Abraham Gonzalez, because:- we wanted access to the whole Alveo Suite of FPGAs- *most* U250 cloud vendors won't let you flash your own shell- and truthfully, i wasn't aware of this script David was referring to mask PCIE enumeration problems on reprogramming, and so figured i needed to get PR working
Ultimately, for non-Alveo boards rolling your own shell is unavoidable. I, for instance, will need to build something for VU19P-based devices. David, given that you have something working, I think it would be great if you could upstream your shell once our local-FPGA feature branch is more stable. I think it would really help motivate the design of the host abstraction layer we're trying to build. No pressure.- David Biancolin
Hello Steve,I have FireSim running on local Alveo U250 cards at NTNU.The branche we use can be found at https://github.com/EECS-NTNU/firesim/tree/u250 .We use XIlinx XDMA and MIG IPs for PCIe and memory support.The biggest issue we encountered were difficulties reconfiguring the PCIe IP while the server is running.AWS gets around this for the F1 FPGAs by using a static shell and doing partial reconfiguration of the design inside it via PCIe.The Xilinx XRT shell that comes with Alveo cards is heavily targeted towards the Vitis HLS flow and as far as I can tell does not support the approach to DMA FireSim uses.The ideal solution would be to create a shell similar to the one used by AWS but this requires some engineering effort.What we did instead is take inspiration from the xilinx open-nic-shell https://github.com/Xilinx/open-nic-shell#programming-fpga .While called a shell, the whole FPGA is reflashed when the bitstream is changed. Because this causes the PCIe interface to go down, a script provided by Xilinx is used to temporarily disable errors on the PCIe interface.Due to changes to the PCIe BAR configuration this approach still requires rebooting the server once when switching from XRT to FireSim, but no reboot when switching between different FireSim images.On the host side only slight changes are needed, since the AWS F1s also use a XDMA based DMA interface.This approach is a bit hacky but seems to work well for us for now.The biggest issues are that root access is required to reflash the whole FPGA and disable PCIe errors, instead of doing partial reconfiguration.We have some scripts we use to simplify flashing the FPGAs and allow it to be done from non-root users, but those are currently not on public github.If you have any questions, feel free to ask.Best regards,David Metz
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/3e521a9a-6b02-45ab-b760-7f6a7d156e00n%40googlegroups.com.
Hi David,Thanks for the helpful pointer to the u250_firesim wiki. Also, thanks for clarifying that you are using 16GB of memory, and it is the AXI-Lite to the MIG which is tied off. Does most traffic go over the AXI4-Lite link to FireSim? What is the the AXI4-MM DMA path used for?Best Regards,Steve Haynal
You received this message because you are subscribed to a topic in the Google Groups "FireSim" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firesim/MGc1qAIYgC8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firesim+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/d46df0a8-be6d-415f-9a0b-41ba757e416dn%40googlegroups.com.
Hey David,
What kind of FMRs do you get with your U250 booting linux with the default rocket config? If we sent you a patch to the driver measure MMIO read/write latency would you be willing to run that for us?- David
On Friday, February 4, 2022 at 3:11:35 AM UTC-8 david....@googlemail.com wrote:
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/8701f85b-32e5-478b-9cd1-9847ccc84686n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/cddf45ad-72ae-4d40-a7b3-ee734d5f751cn%40googlegroups.com.
./FireSim-u250 +permissive +mm_relaxFunctionalModel_0=0 +mm_writeMaxReqs_0=10 +mm_readMaxReqs_0=10 +mm_writeLatency_0=30 +mm_readLatency_0=30 +zero-out-dram +slotid=0 +blkdev0=./poweroffnode.ext2 +permissive-off ./br-base-bin
Near the end of the test, we see the text below in the output. The line "Cycles elapsed" in bold below should have the same value from run to run but we see variation.
Best Regards,
Steve Haynal
Running sysctl: OK
Starting mdev: OK
Initializing random number generator... [ 1.527119] random: dd: uninitialized urandom read (512 bytes read)
done.
Starting network: OK
[ 1.669630] random: httpd: uninitialized urandom read (8 bytes read)
[ 1.669748] random: httpd: uninitialized urandom read (8 bytes read)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Starting dropbear sshd: OK
Cycles elapsed: 3232551491
Time elapsed: 1.897110000 seconds
Powering off immediately.
[ 1.924636] reboot: Power down
Simulation complete.
*** PASSED *** after 3291824132 cycles
Emulation Performance Summary
------------------------------
Wallclock Time Elapsed: 49.5 s
Host Frequency: 89.999 MHz
Target Cycles Emulated: 3291824132
Effective Target Frequency: 66.468 MHz
FMR: 1.35
Note: The latter three figures are based on the fastest target clock.
You received this message because you are subscribed to a topic in the Google Groups "FireSim" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firesim/MGc1qAIYgC8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firesim+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firesim/f6340dbf-7c8a-4dbf-997a-fd555c3729e4n%40googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/firesim/d124853b-b7ee-4b89-8591-d95eb4f6dc9an%40googlegroups.com.