---
# System prepended metadata

title: Jack Kaushik Meeting (06/17/2022)

---

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