# 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.