-
Notifications
You must be signed in to change notification settings - Fork 552
std::cout << "hello OneAPI" << std::endl; #3296
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
9prady9
left a comment
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.
Interesting, is this a copy of opencl backend with few fixes and commented out kernel launches ?
CMakeModules/InternalUtils.cmake
Outdated
| set(BUILD_SHARED_LIBS ON) | ||
|
|
||
| set(CMAKE_CXX_STANDARD 14) | ||
| set(CMAKE_CXX_STANDARD 17) |
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.
nice
| namespace afoneapi | ||
| { | ||
|
|
||
| #if 0 |
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.
Ah, I missed this one in the first look :)
src/backend/common/EventBase.hpp
Outdated
| /// \brief Event destructor. Calls the destroy event call on the native API | ||
| ~EventBase() noexcept { | ||
| if (e_) NativeEventPolicy::destroyEvent(&e_); | ||
| //if (e_) |
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.
why leave and comment it out ?
src/backend/common/Logger.hpp
Outdated
| /* Other */ | ||
| #endif | ||
|
|
||
|
|
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 entire pragma based suppression for spdlog is better clubbed in separate header which can be resued from multiple locations in the code base which wants to use spdlog.
| #else | ||
| /* Other */ | ||
| #endif | ||
|
|
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.
Perhaps we can do the same to glad header too (like spdlog)
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's only two places it happens, perhaps a macro could work 🤔
* afoneapi compiles and links
* Files that compile:
Array.cpp
Event.cpp
wrap.cpp
where.cpp
unwrap.cpp
triangle.cpp
transpose.cpp
transform.cpp
topk.cpp
tile.cpp
svd.cpp
susan.cpp
surface.cpp
sum.cpp
sparse_blas.cpp
sparse_arith.cpp
sparse.cpp
sort_index.cpp
sort.cpp
solve.cpp
sobel.cpp
sift.cpp
set.cpp
select.cpp
scan_by_key.cpp
scan.cpp
rotate.cpp
resize.cpp
reshape.cpp
reorder.cpp
regions.cpp
range.cpp
random_engine.cpp
qr.cpp
product.cpp
plot.cpp
orb.cpp
nearest_neighbor.cpp
morph.cpp
moments.cpp
min.cpp
memory.cpp
medfilt.cpp
meanshift.cpp
mean.cpp
max.cpp
platform.cpp
missing uniform random function elsewhere in arrayfire. maxdims fails like everywhere else. gfor fails.
test Transpose/0.TranposeIP_10 takes a much longer time to run
that
cpu. investigate
Adds a OneAPI backend to ArrayFire. This PR is a starting point for further development and collaboration.
Description
New feature. New backend!
Lots of commits. Commits should probably be squashed. Enough scaffolding is in place to start porting kernels.
This should allow performant support for upcoming Intel hardware.
This new backend may eventually need to utilize existing JIT implementations. Not sure if changes will be necessary if so.
Sooooo many kernels need to be ported.
Changes to Users
Current source should remain unaffected when building. If new backend is targeted the icx compiler will be necessary with a command similar to:
Checklist