Forum Discussion

TRahm3's avatar
TRahm3
Icon for New Contributor rankNew Contributor
6 years ago

Is it possible to use the emulator for SVM (shared virtual memory) using OpenCL FPGA SDK?

I downloaded and ran the vector_add example available from the design examples page for the Intel OpenCL FPGA SDK (link to example: https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/design-software/opencl/vector-addition.html).

One of the things mentioned in the README.html file attached in the tar ball for this example mentions about the use of SVM, but even when I set USE_SVM_API =1 (view the processor definitions in the readme file) the emulator still only executes the parts of the example host code where its #if USE_SVM_API ==0.

Is it possible to use the shared virtual memory for emulation purposes?

2 Replies

  • FawazJ_Altera's avatar
    FawazJ_Altera
    Icon for Frequent Contributor rankFrequent Contributor

    Hello,

    I will check with our internal team regarding this SVM and let you know the feedback soon,

    Thanks

  • FawazJ_Altera's avatar
    FawazJ_Altera
    Icon for Frequent Contributor rankFrequent Contributor

    Hello,

    USE_SVM_API is a flag for the host that makes the OpenCL SVM alloc/free calls available (when equal to 1) at compile time inside the scoped_ptrs.h utilities file. When running the host binary in fast emulation with the flag enabled, these OpenCL SVM APIs should work. The OpenCL SVM APIs will only work for hardware runs if the board has a BSP that supports SVM (Shared Virtual Memory). If the flag is not 1 or not defined, then the OpenCL SVM API calls won’t be compiled in and only host side memory allocation can be used. if the flag is 0, then it’s still possible to have functioning host code assuming SVM isn’t needed.

    Thanks