Skip to content

Commit

Permalink
v0.10.0 msrv1.80, mwalib 1.8.2, hdf5_metno (#12)
Browse files Browse the repository at this point in the history
* ⬆️ msrv1.80 mwalib1.8.2 marlu0.15.0 rubbl0.8 casacore3.5 ndarray0.16 pyo3 0.22
* fix cuda keyring issue, update ubuntu2204 in CI
* use hdf5_metno
  • Loading branch information
d3v-null authored Nov 15, 2024
1 parent 7738241 commit 5383146
Show file tree
Hide file tree
Showing 15 changed files with 923 additions and 586 deletions.
43 changes: 17 additions & 26 deletions .github/workflows/docker_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ on: [push, pull_request]
name: Docker Tests

jobs:
build:
# TODO: make build, test and push separate steps, push depend on test
push:
runs-on: ubuntu-latest
steps:
- name: Set up Docker Buildx
Expand All @@ -20,41 +21,31 @@ jobs:
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: false
push: true
tags: mwatelescope/hyperbeam:latest
cache-from: type=gha
cache-to: type=gha,mode=max
check:
name: Docker Test and Release
needs: build
# todo needs: build
needs: push
runs-on: ubuntu-latest
container: mwatelescope/hyperbeam:latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
- run: /opt/cargo/bin/cargo check
- run: /opt/cargo/bin/cargo fmt --all -- --check
- run: /opt/cargo/bin/cargo clippy --all-targets --all-features -- -D warnings
- run: /opt/cargo/bin/cargo test --release
- run: /opt/cargo/bin/cargo test --no-default-features --release --features=cli
push:
needs: build # TODO: needs: check
runs-on: ubuntu-latest
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
platforms: linux/amd64,linux/arm64
push: true
tags: mwatelescope/hyperbeam:latest
cache-from: type=gha
cache-to: type=gha,mode=max
toolchain: stable
profile: minimal
override: true
components: rustfmt, clippy
- run: cargo check
- run: cargo fmt --all -- --check
- run: cargo clippy --all-targets --all-features -- -D warnings
- run: cargo test --release
- run: cargo test --no-default-features --release --features=cli
8 changes: 4 additions & 4 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
examples: false
- ver: stable
examples: true
- ver: "1.64.0" # MSRV
- ver: "1.80.0" # MSRV
examples: false

steps:
Expand Down Expand Up @@ -143,10 +143,10 @@ jobs:
- name: (ubuntu) install CUDA
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt -y update
sudo apt -y install cuda --no-install-recommends
sudo apt -y install cuda-nvcc-12-6 --no-install-recommends
echo PATH=${PATH}:/usr/local/cuda/bin >> $GITHUB_ENV
- name: (ubuntu) CUDA smoke tests
Expand Down
83 changes: 62 additions & 21 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,44 +6,69 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic
Versioning](https://semver.org/spec/v2.0.0.html).

## [0.10.0] - 2024-11-12

- msrv1.80
- ⬆️ mwalib v1.8.2, marlu0.15.0 rubbl0.8 casacore3.5 ndarray0.16 pyo3 0.22 fitsio 0.21.6 lazy_static
- fix cuda keyring issue, update ubuntu2204 in CI
- use hdf5_metno

## [0.9.4] - 2024-08-20
### Changes

Changes

- Native CPU compiler options off by default for better portability.

## [0.9.3] - 2024-07-31
### Fixed

Fixed

- fix a compile error when specifying env `HIP_FLAGS` with `--features=hip`

## [0.9.2] - 2024-06-21
### Fixed

Fixed

- reduce wasted cycles if the number of coefficients in the beam file is less than
maximum N that the beam kernels are sized for. Since NMAX=31 and the default beam file
is in the low 20s, this speeds things up.

## [0.9.1] - 2024-06-21
### Fixed

Fixed

- fix #11 : revert some of #9 , moving device memory allocations back onto the stack,
this is fine because the kernels are smaller than before.

## [0.9.0] - 2024-05-24
### Fixed
- Huge thanks to @robotopia for fixing https://github.com/MWATelescope/mwa_hyperbeam/issues/9

Fixed

- Huge thanks to @robotopia for fixing <https://github.com/MWATelescope/mwa_hyperbeam/issues/9>

## [0.8.0] - 2024-05-24
### Fixed

Fixed

- update marlu 0.11.0 (no code changes)

## [0.7.2] - 2024-05-14
### Fixed

Fixed

- CI (no code changes).

## [0.7.1] - 2024-01-19
### Fixed

Fixed

- A (seemingly rare) race condition in FEE GPU code.
- examples/analytic_cuda_device.cu wasn't complete.

## [0.7.0] - 2023-10-31
### Added

Added

- Expose Rust function `fix_amps_ndarray`
- FFI functions

Expand All @@ -52,7 +77,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
- `get_fee_freq_map`
- `get_fee_tile_map`

### Changed
Changed

- FFI functions

Most of these changes are to disambiguate the FEE beam from the analytic beam
Expand All @@ -71,13 +97,17 @@ Versioning](https://semver.org/spec/v2.0.0.html).
`get_fee_*_map` yield the host pointers for the maps.

## [0.6.1] - 2023-10-31
### Added

Added

- The "analytic" MWA beam
- There are (unfortunately) two flavours -- "RTS" and "mwa_pb". Both are
supported.

## [0.6.0] - 2023-09-14
### Added

Added

- Support for compiling GPU code with HIP
- FFI function `calc_jones_gpu_device_inner`
- This is the same as `calc_jones_gpu_device`, but allows the caller to pass
Expand All @@ -86,7 +116,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
- Set the $CXX variable to the C++ compiler in $CUDA_PATH, if $CXX is not
already set and $CUDA_PATH/bin/g++ exists.

### Changed
Changed

- The minimum required Rust version is now 1.64.
- Using single-precision floating point calculations on a GPU (CUDA or HIP) is
now done with the `gpu-single` feature, not `cuda-single`.
Expand All @@ -105,11 +136,14 @@ Versioning](https://semver.org/spec/v2.0.0.html).
"array" was used in the sense of the Murchison Widefield _Array_, not as a
collection of numbers.

### Fixed
Fixed

- Calling GPU FEE functions without any directions no longer causes a GPU error.

## [0.5.1] - 2023-02-19
### Fixed

Fixed

- A seemingly-rarely-occurring bug in CUDA FEE code.
- Some Y dipole values were being used for X dipole values (:facepalm:), but
despite this bug being present for many people over many thousands of
Expand All @@ -119,13 +153,16 @@ Versioning](https://semver.org/spec/v2.0.0.html).
- Some clippy lints.

## [0.5.0] - 2022-08-23
### Added

Added

- `calc_jones` functions have now been renamed to "_pair" functions, which take
independent arguments of azimuths and zenith angles. The original functions
(e.g. `FEEBeam::calc_jones`) now take `marlu::AzEl`, which may be more
convenient for the caller by avoiding the need to allocate new arrays.

### Changed
Changed

- The minimum required Rust version is now 1.60.
- Python 3.6 support has been dropped, but 3.10 support is available.
- Rust function APIs have changed.
Expand All @@ -138,7 +175,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
with the new include file and/or examples.
- Function documentation is now more consistent and hopefully more readable.

### Fixed
Fixed

- CUDA compilation on ozstar failed because of an arithmetic operation between
two different types. Compilation has succeeded elsewhere, such as on Ubuntu,
Arch, Pawsey's garrawarla and DUG. The code has changed to prevent the issue
Expand All @@ -150,7 +188,9 @@ Versioning](https://semver.org/spec/v2.0.0.html).
the PKG_CONFIG environment variables is set.

## [0.4.0] - 2021-10-14
### Added

Added

- FEE beam code for CUDA
- The original code is courtesy of Cristian Di Pietrantonio and Maciej
Cytowski on behalf of the Pawsey Supercomputing Centre.
Expand All @@ -173,7 +213,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
harmonic coefficients are nonsensical, so this binary is an attempt to
ensure that the files used are sensible.

### Changed
Changed

- Rust API
- `calc_jones*_array` functions now return a `Vec`, not an `Array1`.
- Rust internals
Expand Down
Loading

0 comments on commit 5383146

Please sign in to comment.