-
Notifications
You must be signed in to change notification settings - Fork 543
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
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
@@ -122,7 +122,7 @@ macro(arrayfire_set_cmake_default_variables) | ||
set(CMAKE_PREFIX_PATH "${ArrayFire_BINARY_DIR};${CMAKE_PREFIX_PATH}") | ||
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
@@ -36,7 +36,8 @@ class EventBase { | ||
|
||
/// \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