FFC

lp:~florian-rathgeber/ffc/gpu-wrappers

Created by Florian Rathgeber and last modified
Get this branch:
bzr branch lp:~florian-rathgeber/ffc/gpu-wrappers
Only Florian Rathgeber can upload to this branch. If you are Florian Rathgeber please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Florian Rathgeber
Project:
FFC
Status:
Experimental

Recent revisions

1513. By Florian Rathgeber

updated DOLFIN GPU includes

1512. By Florian Rathgeber

merge (trunk revno 1556)

1511. By Florian Rathgeber <frat@xeon1>

merged up to trunk rev 1537

1510. By Florian Rathgeber <florian@thehoff>

updated block and grid sizes (optimization)

1509. By Florian Rathgeber <florian@thehoff>

bugfix: wrapper code generation return immediately if no (or invalid) -l parameter is given; gpu_utils: set GRID_DIM to 128 for better occupancy

1508. By Florian Rathgeber <florian@thehoff>

Fixed bug in indexing GPU data structures (forgot parentheses)

1507. By Florian Rathgeber <florian@thehoff>

Updated wrapper code to reflect changes in GPUForm: now initialized only using GPUFunctionSpace(s), GPUMesh extracted from function space 0

1506. By Florian Rathgeber <florian@thehoff>

Generate GPU dof tabulation kernels, restructured such that both full CPU and GPU code can be generated at the same time

codegeneration:
  * tabulate_dofs_gpu
  * return list of mesh entities need for dof tabulation (needed to generate calling code)
  * update for changes format

codesnippets: added jacobian_gpu to dict

cpp:
  * added reset_gpu() to reset formatting to intial state
  * override "dofs", "entity index", "offset entities"

formatting:
  * extract function space and form class names from wrapper code
  * format GPU dofmap code: generate kernel for each dofmap, calling code for each function space
  * format GPU integral code: generate kernel and calling code for each form
  * generate CPU dofmap and integral code as usual

quadraturegenerator: override_gpu(), generate tabulate_tensor_gpu code, reset_gpu()

quadraturerepresentation: split compute_integral_ir into additional function that is called a second time with overriden format in case of dolfin-gpu target

representation: removed GPU override

tensorgenerator: override_gpu(), generate tabulate_tensor_gpu code, reset_gpu()

wrappers:
  * return wrapper code only for dolfin case
  * wrapper code + function space + form class names for dolfin-gpu case (function space class names obtained from gpu_utils.wrappers)

1505. By Florian Rathgeber <florian@thehoff>

Updated gpu_utils to latest FFC version:
templates
  * moved all templates to gpu_utils/__init__.py
  * added templates for dofmap tabulation kernel + calling code
  * split templates into kernel and calling code
wrappers
  * added function space wrapper, function space template
  * generate_dolfin_classes: collect class names of all generated function space classes and the corresponding dofmaps (needed for filling the templates in the code formatting stage)

1504. By Florian Rathgeber <florian@thehoff>

* moved call to override_gpu from codegeneration.py:generate_code to representation.py:compute_ir
* added code snippets for ip_coordinates_gpu

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:ffc
This branch contains Public information 
Everyone can see this information.