UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor eran.peled
Visitor
7,126 Views
Registered: ‎05-24-2016

OpenCL : MPSOC ARM as host

Is OpenCL support using the MPSOC ARM as the host planned to be in the roadmap (not x86 as SDAccel).

Meaning running an application on the ARM using linux for example (Vxworks or other RT OS is preferred), and writing OpenCL kernels which could be run on the FPGA core itself (like Altera FPGA/ARM can do).

 

Our Xilinx representatives here said that currently there is no support but they dont know about the future.

 

Thanks,

Eran.

 

Tags (1)
0 Kudos
12 Replies
Teacher muzaffer
Teacher
7,085 Views
Registered: ‎03-31-2012

Re: OpenCL : MPSOC ARM as host

Vivado HLS already supports OpenCL compilation.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Scholar markcurry
Scholar
7,066 Views
Registered: ‎09-16-2009

Re: OpenCL : MPSOC ARM as host

 

I think what Eran's asking for is having HLS (or something similar) actually running on the MPSOC itself.  Sort of a "reconfiguration from source".  Eran, you post seems to indicate that Altera allows this.  That's interesting.

 

The reason why not many (anyone?) would be doing this is a rather long src->bitfile generation process.  We're talking minutes at least, if not hours. Most folks for reconfiguration purposes, would have "precomputed" bitfiles, that are already built.  At runtime, the desired bitfile would then be loaded.

 

The MPSOC is supposed to heavily target virtualization.  Can't see why you couldn't virtualize a "Xilinx supported" OS running on the device, and then be able to run the whole Xilinx toolset there.  That'd be a neat science project, but I don't really see the applicability to anything other than showing you could do it...

 

 

Regards,

 

Mark

0 Kudos
Visitor eran.peled
Visitor
7,042 Views
Registered: ‎05-24-2016

Re: OpenCL : MPSOC ARM as host

Hi ,

What I am saying that with altera , I can take an OpenCL code and run it on the arriaV (or other new SOCs) , where the ARM is the host which control the OpenCL framework.

And yes currently the compilation time is very long , but it is almost irrelevant as the first stage is to develop the kernels on a regular PC and only when we are sure it is OK we transform it to the embedded hardware ,

 

Thanks ,

Eran.

 

0 Kudos
Scholar austin
Scholar
7,020 Views
Registered: ‎02-27-2008

Re: OpenCL : MPSOC ARM as host

e,

 

Yes, we do that too.  Look at SDAccel, and SDSoC packages.  OpenCL, and HLS.

 

The only questions here are whose tools are easier to use, and actually deliver.

 

I will let you look into that,

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Visitor eran.peled
Visitor
6,846 Views
Registered: ‎05-24-2016

Re: OpenCL : MPSOC ARM as host

Hi Austin ,

Thanks for the reply,

 

But you made me confused again ,

 

What I am asking for is :

  1. Use ultrascale SOC. (If Zynq support it than currently zynq is preferred).
  2. Take an openCL code which I previously ran on a regular PC (kernels + OpenCL C  "management" code run on linux for example).
  3. Open a new project in the vivado/Xilinx-SDK/SDAccel/other.
  4. Perform minimal changes to the code to fit the current system.
  5. Compile/synthesize the code.
  6. Load/Program the new ARM and FPGA code.
  7. Run and see the results.

 

Is that possible ?

Where can I find tutorial which shows some examples for that process (ALTERA support team and documentation helped us with this kind of an example. ).

 

Thanks ,

Eran.

 

0 Kudos
Teacher muzaffer
Teacher
6,835 Views
Registered: ‎03-31-2012

Re: OpenCL : MPSOC ARM as host

You can refer to this document: http://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug902-vivado-high-level-synthesis.pdf

It has some information on how to compile opencl kernels with HLS to run on potentially Zynq SoCs.

One thing you might have to pay attention though is the version of the Opencl specification the two tools support. SdAccel seems to support Opencl 2.0 but HLS only claims support for OpenCl 1.0 embedded profile. I am not sure why the discrepancy is there but it was one reason we stopped work on Opencl with HLS.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Teacher muzaffer
Teacher
6,834 Views
Registered: ‎03-31-2012

Re: OpenCL : MPSOC ARM as host

>> I think what Eran's asking for is having HLS (or something similar) actually running on the MPSOC itself

 

apparently that is not the case.

 

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Visitor eran.peled
Visitor
6,681 Views
Registered: ‎05-24-2016

Re: OpenCL : MPSOC ARM as host

I have found a good example of  the issue here :

http://www.cse.chalmers.se/~joels/writing/ZynqOpenCL.pdf

 

From this example , what I understand is that it is possible to compile (synthesize) OpenCL Kernels as blocks (logic) to be connected to the ARM Block via AXI.

 

Calling the blocks from the software side is NOT supported by any OpenCL framework. Managing the pointers , indices and logic should be done by software.

Is that true or am I missing something ?

 

Thanks,

Eran.

0 Kudos
Scholar austin
Scholar
6,676 Views
Registered: ‎02-27-2008

Re: OpenCL : MPSOC ARM as host

Eran,

 

https://www.khronos.org/opencl/

 

Is the keeper of the standards.  As you can see, Xilinx is a member.  Implementing OpenCL is more an exercise in creating the environment and drivers for any given technology.  There is no one single solution.  Coding in a way that is agnostic (without any intention of CPU, GPU, or FPGA device) may be the lofty goal, but in reality, if power or performance is the goal, one will be targeting FPGA devices.

 

If portability is all you care about, then stick to the standard, and ignore implementation (that is a Xilinx problem, not yours).

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Teacher muzaffer
Teacher
5,057 Views
Registered: ‎03-31-2012

Re: OpenCL : MPSOC ARM as host

>> From this example , what I understand is that it is possible to compile (synthesize) OpenCL Kernels as blocks (logic) to be connected to the ARM Block via AXI.

 

Yes.

 

>> Calling the blocks from the software side is NOT supported by any OpenCL framework. Managing the pointers , indices and logic should be done by software.

 

SDSoC helps quite a bit with creating drivers, adding dma to the hardware etc. in area of software support/control of generated IP but I am not sure how much of that support is for OpenCL. I've heard that they do this even for RTL block so it should be possible to get quite a bit out of it even by integrating HLS produced IP.

 

-Kal

 

 

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Visitor eran.peled
Visitor
5,026 Views
Registered: ‎05-24-2016

Re: OpenCL : MPSOC ARM as host

Hi , 

I care for both, performance & portability (One of OpenCL goals)  but also for a proper support so I will sum my conclusions for the Xilinx hardware and tools:

  1. OpenCL is applicable only as a kernel to logic creator.
  2. OpenCL full standard to be used with the ARM is not supported. 
  3. Support which means datasheets, examples and a POC who can help with OpenCL issues and can really unveil the roadmap for OpenCL support doesn’t exist. 

Thanks anyway for all of you guys, 

Eran.

 

0 Kudos
Scholar austin
Scholar
5,008 Views
Registered: ‎02-27-2008

Re: OpenCL : MPSOC ARM as host

e,

 

Which Xilinx field people are you talking to?  Please email me (austin@xilinx.com) with their contact information.  We have training materials for all our tools, so they have no excuses.  They also have the customer facing  roadmap.  If not, we have to go solve that problem, first.

 

Sounds like you have your points of contact (plural) AND your support.  Every question is being answered quickly and accurately (at least here in the forums).

 

If you wish to see the complete roadmap, that requires a NDA, as we are not going to discuss our future plans in a public forum.

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos