📝 Add LICENSE and README.md
Signed-off-by: Julius Koskela <julius.koskela@unikie.com>
This commit is contained in:
parent
0d701a49b6
commit
8bf134d3d2
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 Julius Koskela
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
72
README.md
Normal file
72
README.md
Normal file
@ -0,0 +1,72 @@
|
||||
# Rust wGPU Matrix Multiplication Shader Test
|
||||
|
||||
## Overview
|
||||
|
||||
This project demonstrates a matrix multiplication operation using compute shaders in Rust with the wGPU library. The primary goal is to showcase how to perform a simple matrix multiplication on the GPU, leveraging the power of parallel computation provided by shaders.
|
||||
|
||||
## Features
|
||||
|
||||
- Matrix multiplication using a compute shader.
|
||||
- Implementation using Rust and the wGPU library.
|
||||
- Efficient GPU-based computation for matrix operations.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Rust programming language.
|
||||
- wGPU library for Rust.
|
||||
- GPU that supports WebGPU.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Installation
|
||||
|
||||
1. Clone the repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-repository/rust-wgpu-matrix-multiplication.git
|
||||
cd rust-wgpu-matrix-multiplication
|
||||
```
|
||||
|
||||
2. Ensure you have the latest version of Rust installed:
|
||||
|
||||
```bash
|
||||
rustup update
|
||||
```
|
||||
|
||||
### Build and Run
|
||||
|
||||
1. Build the project using Cargo, Rust's package manager and build system:
|
||||
|
||||
```bash
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
2. Run the compiled binary:
|
||||
|
||||
```bash
|
||||
cargo run --release
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
- `src/main.rs`: The main entry point for the application.
|
||||
- `src/ppu.rs`: Contains the `PPU` struct for handling GPU tasks.
|
||||
- `shaders/`: Folder containing WGSL shader files.
|
||||
|
||||
## Shader
|
||||
|
||||
The matrix multiplication logic is implemented in a WGSL shader. The shader takes two input matrices (`matrixA` and `matrixB`) and outputs the product (`matrixC`).
|
||||
|
||||
## How It Works
|
||||
|
||||
- The compute shader (`main`) is dispatched with a workgroup size of 4x4.
|
||||
- Each work item calculates one element of the product matrix.
|
||||
- The result is written back to a buffer that is read by the Rust application.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions to this project are welcome. Please open an issue or pull request on the GitHub repository.
|
||||
|
||||
## License
|
||||
|
||||
This project is open-source and available under the [MIT License](LICENSE).
|
Loading…
Reference in New Issue
Block a user