Skip to content
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

Questions related to integration. #206

Open
Vegg-development opened this issue Jan 5, 2023 · 1 comment
Open

Questions related to integration. #206

Vegg-development opened this issue Jan 5, 2023 · 1 comment

Comments

@Vegg-development
Copy link

This is very great thing for a learners indeed. Though there are some things that i want to understand, hope i am asking right questions.

  1. Does this FPGA design runs on standalone FPGA or it requires a host PC ( MAC, Intel, etc. )
  2. If it integrates both CPU and GPU in one design only, what kind of CPU architecture it's using? ( RICS-V, etc. )
  3. If i want to just design a GPU and integrate with host processor like ( PCIExress using ) how i should be able to do it?
  4. You have mentioned opencl integration has been done, but i couldn't find a source repo?
  5. The whole Architectural diagram is available of how the GPGPU works?

Sorry to bother you!

@jbush001
Copy link
Owner

jbush001 commented Jan 8, 2023

No problem!

  1. The host PC is required to load the bitstream onto the FPGA, and to load software onto it. The FPGA board could be made standalone by implementing a flash interface (for persistent storage to load the software from) and supporting flashing the bitstream onto the board (Support active serial bitstream for DE2-115 board #156)
  2. It's a custom instruction set. https://github.com/jbush001/NyuziProcessor/wiki/Instruction-Set. Were I starting this today, I'd probably use RISC-V, but the vector extensions didn't exist when this project started.
  3. A number of people have done this on the Zynq chips from Xilinx, which couple an ARM processor with FPGA. Some are listed here: https://github.com/jbush001/NyuziProcessor/wiki/Related-Projects-and-Research. None of that work is in this repo, but there are some forks that have it. There are many other ways of doing this. You generally need some sort of shared memory, which could be SDRAM with an AXI multi-master configuration, or a chunk of dual ported SRAM. Those aren't terribly complex if you are familiar with the bus protocols, but not trivial.
  4. See Is this project going to support the openCL? #189. I think the closest thing is https://dl.acm.org/doi/10.5555/3314872.3314912
  5. Architecture description is in the Wiki: https://github.com/jbush001/NyuziProcessor/wiki/Microarchitecture

I hope that helps; I'm happy to answer any other questions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants