https://github.com/marty1885/ttmandelbrot
Mandelbrot Set using Tenstorrent hardware
https://github.com/marty1885/ttmandelbrot
mandelbrot parallel-computing tenstorrent
Last synced: 10 days ago
JSON representation
Mandelbrot Set using Tenstorrent hardware
- Host: GitHub
- URL: https://github.com/marty1885/ttmandelbrot
- Owner: marty1885
- License: 0bsd
- Created: 2025-04-26T10:32:34.000Z (23 days ago)
- Default Branch: master
- Last Pushed: 2025-04-26T14:43:20.000Z (22 days ago)
- Last Synced: 2025-04-26T15:36:53.742Z (22 days ago)
- Topics: mandelbrot, parallel-computing, tenstorrent
- Language: C
- Homepage:
- Size: 43 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ttMandelbrot - Mandelbrot Set renderer using Tenstorrent hardware
This program has only been tested on Tenstorrent Wormhole. It WILL NOT work on Grayskull and may not work on Blackhole.
## Build and use
### Dependencies
- tt-Metalium SDK
- OpenMP (for CPU reference)
- libpng (for image saving)### Build
```bash
export TT_METAL_HOME=/path/to/tt-metal
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
```### Usage
There will be 4 files generated. **Run them in the build directory** else the kernel files will not be found.
* `cpu` - CPU reference implementation
* `tt_single_core` - Baseline single (Tensix) core implementation using DRAM to store initial real and imaginary parts of the complex number
* `tt_single_core_nullary` - Baseline single (Tensix) core implementation but the complex number is generated on the fly
* `tt_multi_core_nullary` - Optimized multi-core implementation version of the aboveEach support a set of common parameters:
- `--width ` - Width of the image in pixels
- `--height ` - Height of the image in pixels
- `--output ` - Output file name (Supported formats: PNG, JPEG, BMP)
- `--help` - Display the program help messageFor details please refer to the help message.
### Benchmarking
`benchmark.sh` can be run from the root of the project after building to benchmark the performance of the different implementations. The results will be saved in `benchmark.csv`. It must be ran using zsh.
```bash
zsh benchmark.sh
```