mirror of
https://github.com/fumiama/base16384-sycl.git
synced 2026-06-16 00:16:33 +08:00
doc: add README&LICENSE
This commit is contained in:
123
README.md
Normal file
123
README.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# 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](https://github.com/fumiama/base16384) 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
|
||||
|
||||
> [!Tips] > **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:**
|
||||
|
||||
```powershell
|
||||
# Navigate to your Intel oneAPI installation directory
|
||||
# Typically: C:\Program Files (x86)\Intel\oneAPI\
|
||||
setvars.bat
|
||||
```
|
||||
|
||||
**Linux/Unix:**
|
||||
|
||||
```bash
|
||||
# Navigate to your Intel oneAPI installation directory
|
||||
# Typically: /opt/intel/oneapi/
|
||||
source setvars.sh
|
||||
```
|
||||
|
||||
### 2. Build Process
|
||||
|
||||
**Clone and navigate to the project:**
|
||||
|
||||
```cmd
|
||||
git clone https://github.com/fumiama/base16384-sycl.git
|
||||
cd base16384-sycl
|
||||
mkdir build
|
||||
cd build
|
||||
```
|
||||
|
||||
**Configure the build system:**
|
||||
|
||||
```cmd
|
||||
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
|
||||
```
|
||||
|
||||
**Compile the project:**
|
||||
|
||||
```cmd
|
||||
cmake --build .
|
||||
```
|
||||
|
||||
### 3. Testing
|
||||
|
||||
**Run the test suite:**
|
||||
|
||||
```cmd
|
||||
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](LICENSE) file for detailed information.
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
- Intel oneAPI team for the SYCL implementation
|
||||
- Base16384 algorithm developers
|
||||
- Contributors to the open-source community
|
||||
Reference in New Issue
Block a user