Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.8 #473

Merged
merged 44 commits into from
Feb 5, 2024
Merged

Release 0.8 #473

merged 44 commits into from
Feb 5, 2024

Conversation

daurer
Copy link
Contributor

@daurer daurer commented Jan 24, 2023

More high-performance fixes/features for the entire framework

Bumped to next release

  • Improved data loading
  • Improved deployment and installation

Target release date: 2nd of February

ptim0626 and others added 2 commits January 24, 2023 09:57
* Use primary context when setting up pycuda-related tests

* Set context to None in tests tear-down as what has been done in pycuda

* Use primary context for multi-gpu mpi tests
* Cupy backend + most array utils kernels passing / tested

* Import pybind11 later, to allow setup to run without and install the dependency

* Adds all elementary kernels + tests to cupy backend

* Adds complete cupy-based engines

* make sure headers (.cuh) are copied to build dir

* Finalising changes for the cupy engines

* Adds cupy template for minimal prep and run

* remove text from release notes

Co-authored-by: Team GPU <[email protected]>
daurer and others added 25 commits January 24, 2023 16:42
Installation instructions previously incompatible with the existing file structure of the repository.
PyCUDA installation previously directed to:
accelerate/cuda_pycude/dependencies.yml
Now directs to:
ptypy/accelerate/cuda_pycude/dependencies.yml
patch to fix github actions and update installation instructions
#475)

* Make numpy FFT C-contiguous, allow user to choose FFT type

* improve docstring and change default to scipy
* Added SwmrLoader and introduced new logic for live processing
---------

Co-authored-by: Benedikt Daurer <[email protected]>
* move Ipython dependency into jupyter client
* added explanation to local ipython import
* add python 3.11 and remove MPI from matrix

* replace deprecated np.bool

* more replacmenets for deprecated np.bool and np.float

* more replacements for deprecated np.int

* drop dependency on specific Python version

* unit test cases should return None

* use raw docstring to avoid invalid escape sequence
* check for longdouble

* convert size-1 numpy arrays to scalars

* replaced np.product with np.prod
Co-authored-by: Bjoern Enders <[email protected]>
* Added more choices to comments

---------

Co-authored-by: Thomas Milburn <[email protected]>
* Add function for dumping state
* added functionality to dump and restore the state of a recon
* rolled back deep copies and save/restore copies into a dict instead
ptim0626 and others added 17 commits December 15, 2023 14:59
* initial implementation of multislice ePIE

* code runs but probably still bug for slices > 1

* save slices infomation and fix the update loop

* object as product of all slices at each iteration

* iterating over pods to allow for modes

* swapped loops

* added the 3PIE article to the engine

* renamed the engine to match the algorithm name in the literature

* renamed the file to match the engine and algorithm name

* python convention for class names

* file name as class name

* added semi-functioning switching on of slices at arbitrary iterations

* allow non equal slice spacing

* changed filenames

---------

Co-authored-by: Yiran Lu <[email protected]>
Co-authored-by: kahntm <[email protected]>
* Cast mask from bool to float32 to avoid upcasting to float64

* Apply the same cast to legacy Fourier update for completeness
* raise megapixel limit to 500

* update tests

* changed default to 100 and raise warning instead of error

* modified warning message
* Use pycuda's autoprimaryctx to set up context including clean-up

* Change get_context's call to adapt the new function

* Remove context pop/detach in engine_finalize to retain context

* Clean up context before raising exception for clean message

* Remove unnecessary new_context flag as always the primary context is returned

* Add a function to handle device memory pool creation to ensure a single instance of it

* Create device memory pool through the central function

* Modify the excepthook for pycuda with proper device memory pool clean-up
* use latest version of checkout and setup-python
* updating conda seems to break things
* Fixed swmr loader for arb and mapped raster scans
* Add sign function to return z/|z| for complex number

* Naive implementation of RASP

* Rewrite the RASP algorithm

[WIP] Fill bottom object sum with mean power

Rewrite the RASP algorithm

* Remove denominator fill-up (make recon a bit unstable)

* Support MPI in RASP

* Skip calculating probe max power (already present)

* Delete helper containers as in the parent

Remove containers

* Implement RASP serial version

[WIP] Looks like a working version

Change base RASP inheritance to PositionCorrectEngine to reduce unnecessary operations

[WIP] Fix RASP averaging (was not doing it at all)

[WIP] Final working RASP serial

* Add random seed (for shuffling diff) as a parameter in RASP

* Ensure only one RNG is generated and input vieworder is the same everytime

* Ensure same view order is used between RASP_serial and RASP

* Use the same epsilon with normal implementation for float-point division

* Use customised abs2 consistently when computing af

* Avoid extra computation of af to prevent loss in precision

* Use the exact formula with normal implementation to prevent FP arithmetic issue

* Renmae rasp files to WASP

* Revert "Add sign function to return z/|z| for complex number"

This reverts commit f06b581.

* Revert "Avoid extra computation of af to prevent loss in precision"

This reverts commit 90457da.

* Rename RASP to WASP

* Update WASP publication

* Add moonflower example for WASP_serial

* Remove some irrelevant parameters in WASP

* Add tests for WASP_serial

* [WIP] Draft WASP pycuda

* Divide WASP_serial ob pr update into two as in the normal version

* [WIP] WASP pycuda

* Step the ob and pr sum to the correct location for updating

* Add the WASP ob and pr averaging kernels

* Complete WASP_pycuda engine

* Match serial version of WASP to its pycuda's for averaging ob/pr

* Modify WASP examples for multiple number of probe modes

* Add WASP pycuda example

* Add WASP pycuda tests

* Remove unsed ob_abs2 in WASP pr update kernel

* Add WASP cupy kernel calls

* Draft WASP cupy engine

* Handle mulit-probe abs2 in the kernel and pycuda version

* Add tests for WASP pycuda kernels

* Fix WASP cupy ob_update kernel by making sure input is C-contiguous

* Add WASP cupy kernel tests

* Revert "Use the same epsilon with normal implementation for float-point division"

This reverts commit 2e91841.

* Revert "Use customised abs2 consistently when computing af"

This reverts commit b9c158d.

* Revert "Use the exact formula with normal implementation to prevent FP arithmetic issue"

This reverts commit 753f154.

* Add probe centering to WASP pycuda and cupy

* Remove custom probe power correction

* Remove tests related to custom probe power correction

* Add tests for WASP cupy

* Add WASP cupy moonflower example

* Remove unnecessary clean-up in WASP pycuda because of #520

* Combine ob/pr avg wasp kernel in serial version

* Remove ob/pr avg wasp kernels

* Combine ob/pr avg wasp kernel in pycuda version

* Combine ob/pr avg wasp kernels in cupy version

* Remove redundant ob/pr avg wasp kernel tests
* Add new option to provide arbitrary order of frames

* Add logging

* remove debugging traces
* Improve FFT chooser for GPUs

* improve logging of available GPU memory

* formatting and more info about GPU memory

* separate filtered FFT from Cupy FFT

* reorganised engine templates

* fixes need to get EPIE_cupy engine working

* load both pycuda and cupy

* separate filtered FFT from Skcuda fft (which is broken atm)

* import was missing

* changed named of templates folder
* started draft for release notes for 0.8

* updated message about threepie

* updated release notes
@bjoernenders bjoernenders merged commit e412764 into master Feb 5, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

8 participants