Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

Host Channel Support for 17.0

Best I can gather, there should be support for host/FPGA channels as of 17.0 for cross communication. I cannot, however find any documentation on them, most importantly how to implement them from both sides. Is there support, and if so, where can I find documentation on how to implement it?

5 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I opened a service request with Altera regarding the exact same thing a few weeks ago. What I was told is that support for host channels is only available in a specific BSP for Altera's reference Arria 10 board, and this BSP is not available to public yet.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Given no channel support, what is the prescribed method of shunting data across the PCI in such a manner as the host can detect (or be alerted) when the FPGA has passed (or wants to pass) information across without calling the kernel's return?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You can check OpenCL's clEnqueueMapBuffer() function and/or the concept of host pointers in OpenCL to see if they serve your purpose. I am not sure how much these are supported by Altera (Altera's documents detail what is supported and what is not) or how memory consistency would work in this case.

    P.S. The standard clEnqueueRead\WriteBuffer functions have their own return, and can also be configured as non-blocking where an OpenCL event can be used on the host to determine when they finish.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I was looking at those but it appeared to me the event were host side only (i.e. they only reported when I finished reading/writing as requested from the host) whereas I would like to know when something has happened on the FPGA; ideally either in the form of data being delivered over the PCI or a flag being set via some other method that alerts me to start a read operation.

    If I've misread, I'd be glad to be corrected/pointed at the appropriate documentation.