Visible to Intel only — GUID: GUID-E8F6C02B-B43A-4E5B-BF80-A23F5F3E9A52
Visible to Intel only — GUID: GUID-E8F6C02B-B43A-4E5B-BF80-A23F5F3E9A52
Build applications with oneDAL
This section contains instructions for building applications with oneDAL for SYCL*.
Applications on Linux* OS
Install oneDAL.
Set environment variables by calling <install dir>/setvars.sh.
Build the application using icpx (Linux* OS) and icx-cl (Windows* OS) commands:
Add oneDAL includes folder:
-I<install dir>/dal/latest/include
Add oneDAL libraries. Choose the appropriate oneDAL libraries based on oneDAL threading mode and linking method:
oneDAL libraries for Linux Single-threaded (non-threaded)
Multi-threaded (internally threaded)
Static linking
libonedal_core.a,
libonedal_dpc.a,
libonedal_core.a,
libonedal_dpc.a,
libonedal_thread.a
Dynamic linking
libonedal_core.so,
libonedal_dpc.so,
libonedal_core.so,
libonedal_dpc.so,
libonedal_thread.so
Add an additional oneDAL library:
<install dir>/dal/latest/libintel64/libonedal_sycl.a
Applications on Windows* OS
Install oneDAL.
In Microsoft Visual Studio* Integrated Development Environment (IDE), open or create a C++ project for your oneDAL application to build.
In project properties:
Set Intel® oneAPI DPC++/C++ Compiler platform toolset:
Add oneDAL includes folder to Additional Include Directories.
Add folders with oneDAL and oneTBB libraries to Library Directories:
Add oneDAL and OpenCL libraries to Additional Dependencies:
Add the appropriate libraries to your project based on oneDAL threading mode and linking method:
oneDAL libraries for Windows Single-threaded (non-threaded)
Multi-threaded (internally threaded)
Static linking
onedal_core.lib,
onedal_core.lib,
onedal_thread.lib
Dynamic linking
onedal_core_dll.lib
onedal_core_dll.lib
You may also add debug versions of the libraries based on the threading mode and linking method:
oneDAL debug libraries for Windows Single-threaded (non-threaded)
Multi-threaded (internally threaded)
Static linking
onedal_cored.lib,
onedald.lib,
onedal_dpcd.lib,
onedal_sycld.lib,
onedal_cored.lib,
onedald.lib,
onedal_dpcd.lib,
onedal_sycld.lib,
onedal_threadd.lib
Dynamic linking
onedal_cored_dll.lib (onedal_cored_dll.1.lib),
onedald_dll.lib (onedald_dll.1.lib),
onedal_dpcd_dll.lib (onedal_dpcd_dll.1.lib),
onedald.1.dll,
onedal_cored.1.dll,
onedal_dpcd.1.dll,
onedal_cored_dll.lib (onedal_cored_dll.1.lib),
onedald_dll.lib (onedald_dll.1.lib),
onedal_dpcd_dll.lib (onedal_dpcd_dll.1.lib),
onedald.1.dll,
onedal_cored.1.dll,
onedal_dpcd.1.dll,
onedal_threadd.1.dll
Examples
Dynamic linking, Multi-threaded oneDAL:
Linux* OS:
icpx -fsycl my_first_dal_program.cpp -Wl, --start-group -L<install dir>/dal/latest/lib/intel64 -lonedal_core -lonedal_dpc -lonedal_thread -lpthread -ldl -lOpenCL -L<install dir>/tbb/latest/lib/intel64/gcc4.8 -ltbb -ltbbmalloc <install dir>/dal/latest/lib/intel64/libonedal_sycl.a -Wl,--end-group
Windows* OS:
icx-cl -fsycl my_first_dal_program.cpp -Wl, --start-group -L<install dir>/dal/latest/lib/intel64 -lonedal_core -lonedal_dpc -lonedal_thread -lpthread -ldl -lOpenCL -L<install dir>/tbb/latest/lib/intel64/gcc4.8 -ltbb -ltbbmalloc <install dir>/dal/latest/lib/intel64/libonedal_sycl.a -Wl,--end-group
Static linking, Single-threaded oneDAL:
Linux* OS:
icpx -fsycl my_first_dal_program.cpp -Wl, --start-group <install dir>/dal/latest/lib/intel64/libonedal_core.a <install dir>/dal/latest/lib/intel64/libonedal_dpc.a -lpthread -ldl -lOpenCL <install dir>/dal/latest/lib/intel64/libonedal_sycl.a -Wl,--end-group
Windows* OS:
icx-cl -fsycl my_first_dal_program.cpp -Wl, --start-group <install dir>/dal/latest/lib/intel64/libonedal_core.a <install dir>/dal/latest/lib/intel64/libonedal_dpc.a -lpthread -ldl -lOpenCL <install dir>/dal/latest/lib/intel64/libonedal_sycl.a -Wl,--end-group