Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions examples/tools/intel/sycl_app/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
cmake_minimum_required(VERSION 3.15)
project(sycl_app CXX)

find_package(ZLIB REQUIRED)
find_package(fmt REQUIRED)

add_executable(sycl_app src/main.cpp)
target_link_libraries(sycl_app PRIVATE ZLIB::ZLIB fmt::fmt)
target_compile_features(sycl_app PRIVATE cxx_std_17)
29 changes: 29 additions & 0 deletions examples/tools/intel/sycl_app/conanfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from conan import ConanFile
from conan.tools.cmake import CMake, cmake_layout, CMakeDeps, CMakeToolchain


class SyclAppRecipe(ConanFile):
name = "sycl_app"
version = "1.0"
package_type = "application"

settings = "os", "compiler", "build_type", "arch"
exports_sources = "CMakeLists.txt", "src/*"

def requirements(self):
self.requires("zlib/1.3.1")
self.requires("fmt/11.0.2")

def layout(self):
cmake_layout(self)

def generate(self):
deps = CMakeDeps(self)
deps.generate()
tc = CMakeToolchain(self)
tc.generate()

def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
16 changes: 16 additions & 0 deletions examples/tools/intel/sycl_app/profiles/linux
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[settings]
os=Linux
arch=x86_64
compiler=intel-cc
compiler.mode=icx
compiler.version=2026.0
compiler.cppstd=17
compiler.libcxx=libstdc++
build_type=Release

[conf]
tools.build:cxxflags=["-fsycl"]
tools.build:exelinkflags=["-fsycl"]
tools.build:sharedlinkflags=["-fsycl"]
tools.intel:installation_path=/opt/intel/oneapi

16 changes: 16 additions & 0 deletions examples/tools/intel/sycl_app/profiles/windows
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[settings]
os=Windows
arch=x86_64
compiler=intel-cc
compiler.mode=icx
compiler.version=2026.0
compiler.cppstd=17
compiler.runtime=dynamic
build_type=Release

[conf]
tools.build:cxxflags=["-fsycl"]
tools.build:exelinkflags=["-fsycl"]
tools.build:sharedlinkflags=["-fsycl"]
tools.intel:installation_path=C:\Program Files (x86)\Intel\oneAPI

36 changes: 36 additions & 0 deletions examples/tools/intel/sycl_app/src/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include <sycl/sycl.hpp>
#include <zlib.h>
#include <fmt/core.h>
#include <vector>

int main() {
sycl::queue q;
fmt::print("SYCL Device: {}\n",
q.get_device().get_info<sycl::info::device::name>());

// Compute squares using SYCL parallel_for
constexpr size_t N = 10000;
std::vector<float> data(N);
{
sycl::buffer buf(data);
q.submit([&](sycl::handler& h) {
auto acc = buf.get_access<sycl::access::mode::write>(h);
h.parallel_for(N, [=](sycl::id<1> i) {
acc[i] = static_cast<float>(i[0] * i[0]);
});
});
}
fmt::print("Computed {} squares. First: {}, Last: {}\n",
N, data[0], data.back());

// Compress results with zlib
std::vector<Bytef> compressed(compressBound(data.size() * sizeof(float)));
uLongf comp_size = compressed.size();
compress(compressed.data(), &comp_size,
reinterpret_cast<const Bytef*>(data.data()),
data.size() * sizeof(float));

fmt::print("Compressed {} bytes -> {} bytes ({:.1f}%)\n",
data.size() * sizeof(float), comp_size,
100.0 * comp_size / (data.size() * sizeof(float)));
}
Loading