-
Notifications
You must be signed in to change notification settings - Fork 769
[ESIMD] Overloading sycl sin,cos,exp,log functions for ESIMD arguments #3717
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
The test is here: intel/llvm-test-suite#312 |
5767974
to
b7c2dc9
Compare
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.
Looks like I did not hit "submit" the first time :(
#include <sycl/ext/intel/experimental/esimd/detail/math_intrin.hpp> | ||
|
||
// TODO Decide whether to mark functions with this attribute. | ||
#define __NOEXC /*noexcept*/ |
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 think for device it should be noexcept, as for all device functions, for host - same as usual SYCL host.
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 copied it from builtins.hpp
.
#endif // __SYCL_DEVICE_ONLY__ | ||
} | ||
|
||
ESIMD_NODEBUG ESIMD_INLINE __ESIMD_NS::simd<float, 1> |
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.
not clear why this specialization is needed?
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.
?
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 couldn't remember why I added it. But it looks like now it's not needed. I deleted it.
__SYCL_INLINE_NAMESPACE(cl) { | ||
namespace sycl { | ||
|
||
#define __ESIMD_NS ext::intel::experimental::esimd |
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.
this one is already defined:
sycl/include/sycl/ext/intel/experimental/esimd/common.hpp:#define __ESIMD_NS sycl::ext::intel::experimental::esimd
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.
Done.
b7c2dc9
to
003eea7
Compare
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.
please add E2E tests also
@DenisBakhvalov, I suggest to change the title for more clarity - this is really overloading sycl:: functions for ESIMD arguments. |
@bader - please review. This overloading approach was agreed upon with @rolandschulz and @Pennycook. |
E2E tests are here: intel/llvm-test-suite#312 |
@bader, @alexbatashev, @v-klochkov or other folks from rt reviewers - please approve |
* upstream/sycl: (776 commits) Align CMake requirements with upstream. (intel#3928) [SYCL] Deprecate [[intel::reqd_work_group_size]] attribute spelling (intel#3927) [SYCL] Fix post commit after PR 2292 (intel#3939) {SYCL][PI][L0] - Eliminate std::string construction/destruction overhead. (intel#3931) [ESIMD] Overloading sycl sin,cos,exp,log functions for ESIMD arguments (intel#3717) [sycl-post-link] Add device image property for assert feature (intel#3881) [SYCL] Split read/write lockings (intel#2292) Handle OpSpecConstantOp with Select Handle OpSpecConstantOp with SMod Add tests for SConvert, UConvert, BitCast OpSpecConstantOp Fix attachment of decoration to spec constants Implement support for dynamic memmove Align clang-tidy/format versions to LLVM version Handle OpSpecConstantOp for integer comparisons Handle OpSpecConstantOp for SNegate, Not, and LogicalNot Extend OpSpecConstantOp testing for initializers Use IRBuilder for folding Fix translating of compile unit Support buffers in LinalgFoldUnitExtentDims [gn build] Port d0a5d86 ...
No description provided.