Add ComputeManager; add SmoHooks for getting ClDevices, buffers

We added a new centralized OpenCL Compute manager. This can later
be extended to support CUDA, SyCL, etc. SMO can be configured at
build time to choose which API it will use for compute.

Moreover, the ComputeMgr allows us to register buffers which are
available to all cl_contexts.
This commit is contained in:
2025-11-19 22:33:30 -04:00
parent a910909ad5
commit 27b43c6686
9 changed files with 665 additions and 45 deletions
+8
View File
@@ -34,6 +34,9 @@ add_library(smocore STATIC
# SenseApis
stimBuffApis/stimBuffApiManager.cpp
# ComputeManager
computeManager/computeManager.cpp
# MindManager
mindManager/mindManager.cpp
)
@@ -47,6 +50,7 @@ target_include_directories(smocore PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_BINARY_DIR}
${Boost_INCLUDE_DIRS}
${OPENCL_INCLUDE_DIRS}
)
# Link against pthread for CPU affinity functions
@@ -55,4 +59,8 @@ target_link_libraries(smocore PRIVATE
Threads::Threads
Boost::system
Boost::log
${OPENCL_LIBRARIES}
)
target_link_directories(smocore PRIVATE
${OPENCL_LIBRARY_DIRS}
)