Forum Discussion
Is it possibe to request low‐level Oneᴀᴘɪ or OpenCl language extensions ?
Hello, I don’t know if it’s the right place nor if it’s possible but I was thinking in C/C+ we have the asm() keyword/function or compiler interstics like __builtin_ia32_pcmpistri128() for doing a string search that allow accessing the underlying ᴄᴘᴜ in an advanced way : it’s still up to the compiler to chose if the used variables will be from the stack or a register. It also allow to call C/C++ code.
While I know ʜʟꜱ code is directly, compiled to bitstream, why not have an asm() like keyword that allows to insert Verilog/ᴠʜᴅʟ like low level code ? Or low‑level interstics ? The compiler would still be responsible doing things like clocking the low level code relative to thermal or the lowest possible latency while allowing the low level code to call high‑level functions. Like asking to perform a multiplication directly on a ᴅꜱᴘ instead of being unsure.
This should enable manual optimizations that are currently unsupported automatically like level 4 unfolding transformations or create low bit maths functions that can automatically be reclocked relative to the allowed thermal characteristics.
5 Replies
- aikeu
Regular Contributor
Hi ytrezq,
As we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.
Thanks.
Regards,
Aik Eu
- ytrezq
New Contributor
Hi,
sorry but as written in my post, this isn’t a question but a feature request… I thought to remember there were a guide to request language extension to Oneᴀᴘɪ on the main website.
- JohnShanly
New Contributor
Perhaps the RTL library support would do what you want:
- ytrezq
New Contributor
In the C analogy using ʀᴛʟ would be equivalent to using a plain .asm file where in .asm you have to care if you use a register or memory which can be handled automatically with a asm/interstic statement. In the ꜰᴘɢᴀ case, this means you still have to clock manually the design.
So this is lower level.
Also, as far I understand, Verilog/ᴠʜᴅʟ code can’t use Sycl code…