# Jack Kaushik Meeting (06/17/2022)
## Agenda
- Status of the GPU branches
- CI
- OpenCL?
## Minutes
https://github.com/firedrakeproject/firedrake/blob/bb0bdf0312cc48f6798f95a99e5e9dc6cb92be99/tests/test_offloading.py#L25-L26
# Actions
- PyOp2 needs to compute backend selection patch
- Branch: `gpu`
- Add CI for PyOP2 offloading regressions.
- Remove the bits regarding "auto-tiling" transform pathway.
- TSFC (2-3 lines of diff)
- Branch: `gpu`
- Firedrake needs to use patch
- Branch: `gpu`
- Slightly sophisticated regressions.
- Look into free-runner GPU CI platforms
- Opencl CPU CI.
- Refactor Thur 23rd, Fri, (Sat)
- Connect on slack.
- Thu-Fri (2pm-6pm BST)
- Fri(4:30-6:00 BST, Kaushik N/A)
- [ ] Add a way to pass in `cuda_dir` in firedrake-install script.
# Sprint Log
# PR Comments
- Replace current backend system:
- Backends
- cpu
- openCL
- CUDA
- With single `Dat` class and write getters and setters for the `_data` attribute.
# Connor, Jack, Kaushik Meeting (03/08/2022)
## Agenda
- Code duplication in backends
- MirroredArray: https://github.com/OP2/PyOP2/pull/671
- Agreed upon design:
- 2 sub-classes of MirroredArray
- One with PetscVec, one without PetscVec
- TODO: Should we care about `halo_size!=0` for
the subclass without the PetscVec
- Mixins for different backends.
- `kernel_args_ro` for `Parloop.arglist`
- `Map.values`: return a read-only view.
- Unnecessary halo exchanges causing host <-> device copies
- Since this is a performance-only let's postpone this with a `TODO`
- No invoker level layer in PyOP2
- Context: https://github.com/OP2/PyOP2/pull/574#discussion_r918938833
- Not much support for targets other than PyOpenCL: postpone for now.