1
0
mirror of https://github.com/fumiama/base16384-sycl.git synced 2026-06-05 00:32:49 +08:00
Go to file
源文雨 eb8131173e feat(test): add result comparison to basic
Run on i7-14700K:
```
> .\tests\basic.exe
执行设备: Intel(R) UHD Graphics 770
设备类型: GPU

Intel GPU 特性:
  XeCore 数量: 4
  每个 XeCore 的向量引擎数: 8
  向量引擎总数: 32
  每个 XeCore 的硬件线程数: 56
  每个向量引擎的硬件线程数: 7
  硬件线程总数: 224
  GPU 内存大小: 31712935936 B (29.53 GB)
  每个工作组的共享本地内存: 65536 B
  最大工作组大小: 512
  支持的子组大小: 8 16 32
  推荐选择子组大小: 8
  100% 占用率工作组大小: 256

CPU (2944.7 ms): 54 85 110 101 0 102 101 101 85 86 85 86 110 110 110 206 94 110 104 198 110 102 102 206 94 110 110 94 104 94 206 102 101 102 94 54 101 110 254 86 86 104 102 198 104 110 0 104 110 86 0 110 110 198 110 110 94 85 110 0 254 101 101 101...
GPU 基本并行 (471.7 ms): 54 85 110 101 0 102 101 101 85 86 85 86 110 110 110 206 94 110 104 198 110 102 102 206 94 110 110 94 104 94 206 102 101 102 94 54 101 110 254 86 86 104 102 198 104 110 0 104 110 86 0 110 110 198 110 110 94 85 110 0 254 101 101 101...
GPU 高级并行 (448.2 ms): 54 85 110 101 0 102 101 101 85 86 85 86 110 110 110 206 94 110 104 198 110 102 102 206 94 110 110 94 104 94 206 102 101 102 94 54 101 110 254 86 86 104 102 198 104 110 0 104 110 86 0 110 110 198 110 110 94 85 110 0 254 101 101 101...
```
2025-10-09 16:18:54 +08:00
2025-09-26 17:27:44 +08:00
2025-09-28 17:19:23 +08:00
2025-09-28 17:20:45 +08:00

Base16384-SYCL

A high-performance Base16384 encoding library implemented using Intel SYCL for accelerated computation on heterogeneous hardware platforms.

Overview

Note

This library requires Intel oneAPI DPC++/SYCL runtime. Please ensure proper environment setup before building and running the applications.

Base16384-SYCL is an optimized implementation of the Base16384 encoding algorithm that leverages Intel SYCL (oneAPI Data Parallel C++) to achieve superior performance on both CPU and GPU architectures. The library provides efficient encoding and decoding capabilities while maintaining cross-platform compatibility.

Features

  • Hardware Acceleration: Utilizes Intel SYCL for parallel processing on CPUs, GPUs, and other accelerators
  • Cross-Platform Support: Compatible with Windows and Unix-like systems
  • Performance Optimized: Includes vectorization and memory optimization for maximum throughput
  • Robust Error Handling: Comprehensive exception handling with detailed error reporting
  • Modern C++: Written in C++20 with modern programming practices

Prerequisites

Required Dependencies

  • Intel oneAPI Toolkit: DPC++/SYCL compiler and runtime
  • CMake: Version 3.4 or higher

Windows-Specific Requirements

  • Visual Studio Build Tools or Visual Studio IDE
  • Intel DPC++ compiler (icx-cl)
  • NMake (included with Visual Studio)

Unix/Linux Requirements

  • Intel DPC++ compiler (icpx)
  • Standard build tools (make, etc.)

Installation

1. Environment Setup

Tip

For VS Code Users: If you're using Visual Studio Code, the environment variable setup commands will be executed automatically when you open a terminal. If this fails, it may be due to a non-standard installation path. Please modify the paths in .vscode/settings.json accordingly.

Windows:

# Navigate to your Intel oneAPI installation directory
# Typically: C:\Program Files (x86)\Intel\oneAPI\
setvars.bat

Linux/Unix:

# Navigate to your Intel oneAPI installation directory
# Typically: /opt/intel/oneapi/
source setvars.sh

2. Build Process

Clone and navigate to the project:

git clone https://github.com/fumiama/base16384-sycl.git
cd base16384-sycl
mkdir build
cd build

Configure the build system:

cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..

Compile the project:

cmake --build .

3. Testing

Run the test suite:

ctest

Build Configuration

The project supports multiple build configurations:

  • Release: Optimized for maximum performance (-O3, /O2)
  • Debug: Includes debugging symbols and reduced optimization
  • RelWithDebInfo: Release optimization with debug information
  • MinSizeRel: Optimized for minimal binary size

Compatibility

  • Operating Systems: Windows 10/11, Linux, macOS
  • Architectures: x86-64, ARM64 (where Intel oneAPI is supported)
  • Hardware: Intel CPUs, Intel GPUs, NVIDIA GPUs (via Level Zero), AMD GPUs (experimental)

Contributing

Contributions are welcome! Please ensure that:

  1. Code follows the existing style and conventions
  2. All tests pass (ctest)
  3. New features include appropriate test coverage
  4. Documentation is updated for significant changes

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for detailed information.

Acknowledgments

  • Intel oneAPI team for the SYCL implementation
  • Base16384 algorithm developers
  • Contributors to the open-source community
Description
No description provided
Readme GPL-3.0 226 KiB
Languages
C++ 85.7%
CMake 14.3%