-
Notifications
You must be signed in to change notification settings - Fork 787
Made accessor_properties a ONEAPI extension and added the buffer_location extension #2439
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
Conversation
```c++ | ||
namespace sycl { | ||
... | ||
namespace INTEL { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@GarveyJoe have you considered swapping INTEL
and property
namespaces in the nesting?
The thing I find confusing in the namespace nesting, is that property namespace is put inside of INTEL (aka hardware extension) namespace, but we will have some other properties, that will have not only FPGA usage, hence these properties shall be placed in ONEAPI (aka language extensions) namespace.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was trying to be consistent with the spirit of the rules from the SYCL 2020 provisional spec which indicates that vendor extensions should be in their own namespace nested in the sycl namespace. @gmlueck is this the recommended way to nest these namespaces?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense, Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you are asking whether this extension should be in the INTEL
vs ONEAPI
namespace, I think @jbrodman is the right person to answer.
Regarding the order of the namespaces sycl::INTEL::property
vs. sycl::property::INTEL
, I think the first is preferable (which is what you have).
…2439) According to the SPIR-V specification: > All `OpVariable` instructions in a function must be in the first block in the function. These instructions, together with any intermixed `OpLine` and `OpNoLine` instructions, must be the first instructions in that block. (Note the validation rules prevent `OpPhi` instructions in the first block of a function.) As forcing `OpVariable` insertion at the beginning of the first block might be too invasive by changing original semantics, inserting them at the beginning of the argument block would preserve semantics while always producing valid SPIR-V code. `llvm.memmove` lowering has been fixed to always generate valid SPIR-V code by inserting needed `alloca` instructions at the beginning of the function's entry block. Signed-off-by: Victor Perez <[email protected]> Original commit: KhronosGroup/SPIRV-LLVM-Translator@5f965be1a9a88c6
[benchmarks] add explicit benchmark groups
As part of this change, the new functionality was extracted from property_list into accessor_property_list in the ONEAPI namespace. Another significant change was that the class that represents an instance of a property is now implementation-defined and only accessed through a global variable.