Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 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 (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T23:43:39.000Z (almost 2 years ago)
- Last Synced: 2023-03-06T12:57:17.977Z (almost 2 years ago)
- Topics: dynasoar, gpgpu, parallel, python, smmo
- Language: Python
- Homepage:
- Size: 45.6 MB
- Stars: 6
- Watchers: 5
- Forks: 2
- Open Issues: 3
-
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
![](img/structure.PNG)
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`.