-
Notifications
You must be signed in to change notification settings - Fork 8
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
How to port the SIMTight project to PYNQ-Z2 FPGA board? #16
Comments
Hi, unfortunately we don't currently have the resources to port or maintain a port to Xilinx devices. Perhaps the ability to run in simulation is still useful to you? I foresee three issues in porting:
|
Hi, thanks for your suggestions. I have a question about simulation because you mentioned it. I understand that there is a SIMTight simulator but it probably simulates the CPU only and not the SIMT cores. Please rectify me if my understanding is inaccurate. |
It simulates the entire SoC including CPU, SIMT core, memory subsystem, UART and DRAM. The drawback is that simulation is (of course) slow compared to FPGA. Therefore, in simulation the benchmarks are run only for small data-set sizes. This can lead to underloading of the system, and a dip in IPC. So it may be desirable to increase the data-set sizes slightly in simulation until the point where the benchmarks are performing at an IPC level close to the following level obtained from FPGA:
|
Thanks again for the clarification. Is there any document or user guide to use this simulator? My intention is to develop an OS for SIMTight but I am not sure if I can use this simulator or how I can use it. |
These are the only docs at the moment:
The first one does explain how to use the simulator. The second one discusses software interfaces. |
Can you please tell me what is Mailbox and what is ITCM in the SoC diagram? Also please tell me how the CPU and SIMT are connected. Also, is it possible to run applications on the CPU and SIMT at the same time? There is an UART(USB) connection to the CPU. What is the purpose of this connection? Thanks |
We hope to improve SIMTight's documentation over the next year. Hopefully, I will be able to address such questions as part of that process. |
Thanks for your answer. I have another doubt about the scalarisation. How do you implement dynamic scalarisation in hardware? Do you detect it in simple or host core or do you detect it in SIMT? Is there any existing literature on dynamic scalarisation which you can direct me to? As per the description, the entire warp is executed on a single execution unit in a single cycle because of scalarisation. But please tell me what a single execution unit mean. Is it a signle hardware thread inside a block? Also according to the description, it operates in parallel with the main vector pipeline. Please tell me how it is done because currently syncronous kernel invocation is avaialble. That means the host can run only one kernel and waits till it finishes and scalar optimized kernel must finish before any other kerenel can run. Also what is a main vector pipeline? I know that I asked too many questions, but if you can kindly shed some light that will be very helpful. |
Again, I'll try to address these questions in the upcoming documentation process. Briefly:
|
Hi, as you know DE10 pro FPGA is very costly board. I have a PYNQ-Z2 FPGA board (board details are here https://www.tulembedded.com/FPGA/ProductsPYNQ-Z2.html). I want to do some research on SIMTight. Please tell me how I can port the project to this low end board. I am asking about the exact steps because I am not an expert on FPGA design porting.
The text was updated successfully, but these errors were encountered: