-
Notifications
You must be signed in to change notification settings - Fork 17
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
Release 0.8 #473
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* 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]>
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
* 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]>
… data afterwards (#517)
* 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
More high-performance fixes/features for the entire framework
Bumped to next release
Target release date: 2nd of February