https://github.com/prg-titech/sanajeh
A DSL for GPGPU programming with Python objects
https://github.com/prg-titech/sanajeh
dynasoar gpgpu parallel python smmo
Last synced: 2 months ago
JSON representation
A DSL for GPGPU programming with Python objects
- Host: GitHub
- URL: https://github.com/prg-titech/sanajeh
- Owner: prg-titech
- Created: 2019-10-10T06:36:34.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-04-07T11:21:18.000Z (over 2 years ago)
- Last Synced: 2025-04-01T06:44:12.856Z (4 months ago)
- Topics: dynasoar, gpgpu, parallel, python, smmo
- Language: Python
- Homepage:
- Size: 45.6 MB
- Stars: 6
- Watchers: 5
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sanajeh
A DSL for GPGPU programming with Python objects.# System Requirements
* DynaSOAr's system requirements
* Python 3.7 or later# Design

Sanajeh allows the usage of SMMO paradigm on Python. Sanajeh analyzes the class definitions and uses an analyzer to separate *.cu* and *.h* definitions. From there, these are compiled into *.so* files. The separate *main* function runs the SMMO program by calling the *.so* files through FFI.
# Compilation
The examples are defined in `/examples`. Three working examples are `nbody`, `collision`, and `wator`.
Compilation is executed as follows. Omitting the compile option will run the program.
````
src/interface.py path/to/file.py
````Then run the compiled program with the following command. `--render` is the rendering options. `--cpu` if the program needs to be run sequentially on Python.
````
src/inteface.py --run [--render] [--cpu] path/to/file.py
````The compilation results are automatically put inside the directory `device_code`.