Skip to content
Snippets Groups Projects

Basic support for OpenCL (experimental)

Merged Stephan Seitz requested to merge seitz/pystencils:opencl-backend into master
Viewing commit 0b27d3c3
Next
Show latest version
3 files
+ 55
4
Preferences
Compare changes
Files
3
@@ -58,6 +58,9 @@ def generate_c(ast_node: Node, signature_only: bool = False, dialect='c', custom
@@ -58,6 +58,9 @@ def generate_c(ast_node: Node, signature_only: bool = False, dialect='c', custom
elif dialect == 'cuda':
elif dialect == 'cuda':
from pystencils.backends.cuda_backend import CudaBackend
from pystencils.backends.cuda_backend import CudaBackend
printer = CudaBackend(signature_only=signature_only)
printer = CudaBackend(signature_only=signature_only)
 
elif dialect == 'opencl':
 
from pystencils.backends.opencl_backend import OpenCLBackend
 
printer = OpenCLBackend(signature_only=signature_only)
else:
else:
raise ValueError("Unknown dialect: " + str(dialect))
raise ValueError("Unknown dialect: " + str(dialect))
code = printer(ast_node)
code = printer(ast_node)
@@ -276,10 +279,10 @@ class CBackend:
@@ -276,10 +279,10 @@ class CBackend:
]
]
destructuring_bindings.sort() # only for code aesthetics
destructuring_bindings.sort() # only for code aesthetics
return "{\n" + self._indent + \
return "{\n" + self._indent + \
("\n" + self._indent).join(destructuring_bindings) + \
("\n" + self._indent).join(destructuring_bindings) + \
"\n" + self._indent + \
"\n" + self._indent + \
("\n" + self._indent).join(self._print(node.body).splitlines()) + \
("\n" + self._indent).join(self._print(node.body).splitlines()) + \
"\n}"
"\n}"
# ------------------------------------------ Helper function & classes -------------------------------------------------
# ------------------------------------------ Helper function & classes -------------------------------------------------