Skip to content

tcardenasc/CUDA-CL-GameOfLife

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA-CL Game Of Life

El presente proyecto contiene implementaciones del juego de la vida de Conway en CPU, CUDA y OpenCL, con el propósito de evaluar las diferencias y ventajas/desventajas de cada plataforma.

Puede correr y observar las simulaciones desde la terminal indicando 1 en el argumento de debug al ejecutar cada versión.

Makefile

Hay un Makefile para trabajar más fácil con los siguientes comandos:

  • all: Construye los ejecutables para CUDA, OpenCL y CPU.
  • init: Inicializa el directorio de build utilizando CMake.
  • cuda: Construye el ejecutable para CUDA.
  • cl: Construye el ejecutable para OpenCL.
  • cpu: Construye el ejecutable para CPU.
  • test: Ejecuta las pruebas utilizando CTest.
  • clean: Elimina los artefactos de construcción y los directorios de pruebas.
  • watch: Monitorea los archivos fuente en busca de cambios y desencadena una construcción cuando se detecta un cambio.

Ejecución

Desde el mismo directorio CUDA-CL-GameOfLife.

Versión CPU

build/src/MyProjectCPU <world width> <world height> <iterations> <output_file> <0|1 (debug)> <0|1 (if)>

Ejemplo

build/src/MyProjectCPU 32 16 500 out.txt 1 0

Iteration: 500
□□□□□□□□□□□□□□□□□□□□□■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□■□□□□□□□□□□
□□□□□□□■■■□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□■■■□□□■■■□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□■■□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□■■□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□■□□□□□□□□□□
RESULTS: 
Time to create data: 8 microseconds
Time to execute kernel: 1198305 microseconds
Time to execute the whole program: 1198313 microseconds
Data written to out.txt

Versión Open CL

build/src/cl/MyProjectCL <world width> <world height> <block size> <iterations> <output file> <0|1 (debug)> <0|1 (if)>

Ejemplo

build/src/cl/MyProjectCL 32 16 128 500 out.txt 1 0

Iteration: 500
□□□□■□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
■□□□□□□□■■□□□□□□□□□□□□□□□□□□□□□■
□■□□□□□■□□■□□□□□■■□□□□□□□□□□□□■□
■□□□□□□□■■□□□□□■□□■□□□□□□□□□□□□■
□□□□□□□□□□□□□□□□■■□□□□□□□□□□□□□□
□□□□■□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□■□■□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□■□■□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□■□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□■■□□
□□□□■□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□■□■□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□■□■□□□□□□□□□□□□□□□□□□□□□□□□□□
RESULTS: 
Time to create data: 8 microseconds
Time to execute kernel: 1308667 microseconds
Time to execute the whole program: 1308821 microseconds
Data written to out.txt

Versión CUDA

build/src/cuda/MyProjectCUDA <world width> <world height> <block size> <iterations> <output file> <0|1 (debug)> <0|1 (if)>

Ejemplo

build/src/cuda/MyProjectCUDA 32 16 128 500 out.txt 1 0

Iteration: 500
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□■□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□■□■□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□■■□□□■■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□■■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□■■□□□□□□□□□□□□□□□□□□□■■
□□□□■■□□□■■□□□□□□□□□□□□□□□□□□■□■
□□□□■■□□□□□□□□□□□□□□□□□□□□□□□□■□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□■■□□□□□
■■■□□□□□□□□□□□□□□□□□□□□□□■■□□□□□
RESULTS: 
Time to create data: 8 microseconds
Time to copy data to device: 18 microseconds
Time to execute kernel: 1371543 microseconds
Time to copy data to host: 44 microseconds
Time to execute the whole program: 1371613 microseconds
Data written to out.txt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 51.5%
  • C++ 46.9%
  • Cuda 1.2%
  • Other 0.4%