Tags: phyboyzhang/ginkgo
Tags
Ginkgo version 1.3.0 release. The Ginkgo team is proud to announce the new minor release of Ginkgo version 1.3.0. This release brings CUDA 11 support, changes the default C++ standard to be C++14 instead of C++11, adds a new Diagonal matrix format and capacity for diagonal extraction, significantly improves the CMake configuration output format, adds the Ginkgo paper which got accepted into the Journal of Open Source Software (JOSS), and fixes multiple issues. Supported systems and requirements: + For all platforms, cmake 3.9+ + Linux and MacOS + gcc: 5.3+, 6.3+, 7.3+, all versions after 8.1+ + clang: 3.9+ + Intel compiler: 2017+ + Apple LLVM: 8.0+ + CUDA module: CUDA 9.0+ + HIP module: ROCm 2.8+ + Windows + MinGW and Cygwin: gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+ + Microsoft Visual Studio: VS 2017 15.7+ + CUDA module: CUDA 9.0+, Microsoft Visual Studio + OpenMP module: MinGW or Cygwin. The current known issues can be found in the [known issues page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues). Additions: + Add paper for Journal of Open Source Software (JOSS). [ginkgo-project#479](ginkgo-project#479) + Add a DiagonalExtractable interface. [ginkgo-project#563](ginkgo-project#563) + Add a new diagonal Matrix Format. [ginkgo-project#580](ginkgo-project#580) + Add Cuda11 support. [ginkgo-project#603](ginkgo-project#603) + Add information output after CMake configuration. [ginkgo-project#610](ginkgo-project#610) + Add a new preconditioner export example. [ginkgo-project#595](ginkgo-project#595) + Add a new cuda-memcheck CI job. [ginkgo-project#592](ginkgo-project#592) Changes: + Use unified memory in CUDA debug builds. [ginkgo-project#621](ginkgo-project#621) + Improve `BENCHMARKING.md` with more detailed info. [ginkgo-project#619](ginkgo-project#619) + Use C++14 standard instead of C++11. [ginkgo-project#611](ginkgo-project#611) + Update the Ampere sm information and CudaArchitectureSelector. [ginkgo-project#588](ginkgo-project#588) Fixes: + Fix documentation warnings and errors. [ginkgo-project#624](ginkgo-project#624) + Fix warnings for diagonal matrix format. [ginkgo-project#622](ginkgo-project#622) + Fix criterion factory parameters in CUDA. [ginkgo-project#586](ginkgo-project#586) + Fix the norm-type in the examples. [ginkgo-project#612](ginkgo-project#612) + Fix the WAW race in OpenMP is_sorted_by_column_index. [ginkgo-project#617](ginkgo-project#617) + Fix the example's exec_map by creating the executor only if requested. [ginkgo-project#602](ginkgo-project#602) + Fix some CMake warnings. [ginkgo-project#614](ginkgo-project#614) + Fix Windows building documentation. [ginkgo-project#601](ginkgo-project#601) + Warn when CXX and CUDA host compiler do not match. [ginkgo-project#607](ginkgo-project#607) + Fix reduce_add, prefix_sum, and doc-build. [ginkgo-project#593](ginkgo-project#593) + Fix find_library(cublas) issue on machines installing multiple cuda. [ginkgo-project#591](ginkgo-project#591) + Fix allocator in sellp read. [ginkgo-project#589](ginkgo-project#589) + Fix the CAS with HIP and NVIDIA backends. [ginkgo-project#585](ginkgo-project#585) Deletions: + Remove unused preconditioner parameter in LowerTrs. [ginkgo-project#587](ginkgo-project#587)
Version 1.2.0 release. The Ginkgo team is proud to announce the new minor release of Ginkgo version 1.2.0. This release brings full HIP support to Ginkgo, new preconditioners (ParILUT, ISAI), conversion between double and float for all LinOps, and many more features and fixes. Supported systems and requirements: + For all platforms, cmake 3.9+ + Linux and MacOS + gcc: 5.3+, 6.3+, 7.3+, all versions after 8.1+ + clang: 3.9+ + Intel compiler: 2017+ + Apple LLVM: 8.0+ + CUDA module: CUDA 9.0+ + HIP module: ROCm 2.8+ + Windows + MinGW and CygWin: gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+ + Microsoft Visual Studio: VS 2017 15.7+ + CUDA module: CUDA 9.0+, Microsoft Visual Studio + OpenMP module: MinGW or CygWin. The current known issues can be found in the [known issues page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues). Here are the main additions to the Ginkgo library. Other thematic additions are listed below. + Add full HIP support to Ginkgo [ginkgo-project#344](ginkgo-project#344), [ginkgo-project#357](ginkgo-project#357), [ginkgo-project#384](ginkgo-project#384), [ginkgo-project#373](ginkgo-project#373), [ginkgo-project#391](ginkgo-project#391), [ginkgo-project#396](ginkgo-project#396), [ginkgo-project#395](ginkgo-project#395), [ginkgo-project#393](ginkgo-project#393), [ginkgo-project#404](ginkgo-project#404), [ginkgo-project#439](ginkgo-project#439), [ginkgo-project#443](ginkgo-project#443), [ginkgo-project#567](ginkgo-project#567) + Add a new ISAI preconditioner [ginkgo-project#489](ginkgo-project#489), [ginkgo-project#502](ginkgo-project#502), [ginkgo-project#512](ginkgo-project#512), [ginkgo-project#508](ginkgo-project#508), [ginkgo-project#520](ginkgo-project#520) + Add support for ParILUT and ParICT factorization with ILU preconditioners [ginkgo-project#400](ginkgo-project#400) + Add a new BiCG solver [ginkgo-project#438](ginkgo-project#438) + Add a new permutation matrix format [ginkgo-project#352](ginkgo-project#352), [ginkgo-project#469](ginkgo-project#469) + Add CSR SpGEMM support [ginkgo-project#386](ginkgo-project#386), [ginkgo-project#398](ginkgo-project#398), [ginkgo-project#418](ginkgo-project#418), [ginkgo-project#457](ginkgo-project#457) + Add CSR SpGEAM support [ginkgo-project#556](ginkgo-project#556) + Make all solvers and preconditioners transposable [ginkgo-project#535](ginkgo-project#535) + Add CsrBuilder and CooBuilder for intrusive access to matrix arrays [ginkgo-project#437](ginkgo-project#437) + Add a standard-compliant allocator based on the Executors [ginkgo-project#504](ginkgo-project#504) + Support conversions for all LinOp between double and float [ginkgo-project#521](ginkgo-project#521) + Add a new boolean to the CUDA and HIP executors to control DeviceReset (default off) [ginkgo-project#557](ginkgo-project#557) + Add a relaxation factor to IR to represent Richardson Relaxation [ginkgo-project#574](ginkgo-project#574) + Add two new stopping criteria, for relative (to `norm(b)`) and absolute residual norm [ginkgo-project#577](ginkgo-project#577) + Templatize all examples to simplify changing the precision [ginkgo-project#513](ginkgo-project#513) + Add a new adaptive precision block-Jacobi example [ginkgo-project#507](ginkgo-project#507) + Add a new IR example [ginkgo-project#522](ginkgo-project#522) + Add a new Mixed Precision Iterative Refinement example [ginkgo-project#525](ginkgo-project#525) + Add a new example on iterative trisolves in ILU preconditioning [ginkgo-project#526](ginkgo-project#526), [ginkgo-project#536](ginkgo-project#536), [ginkgo-project#550](ginkgo-project#550) + Auto-detect compilation settings based on environment [ginkgo-project#435](ginkgo-project#435), [ginkgo-project#537](ginkgo-project#537) + Add SONAME to shared libraries [ginkgo-project#524](ginkgo-project#524) + Add clang-cuda support [ginkgo-project#543](ginkgo-project#543) + Add sorting, searching and merging kernels for GPUs [ginkgo-project#403](ginkgo-project#403), [ginkgo-project#428](ginkgo-project#428), [ginkgo-project#417](ginkgo-project#417), [ginkgo-project#455](ginkgo-project#455) + Add `gko::as` support for smart pointers [ginkgo-project#493](ginkgo-project#493) + Add setters and getters for criterion factories [ginkgo-project#527](ginkgo-project#527) + Add a new method to check whether a solver uses `x` as an initial guess [ginkgo-project#531](ginkgo-project#531) + Add contribution guidelines [ginkgo-project#549](ginkgo-project#549) + Improve the classical CSR strategy's performance [ginkgo-project#401](ginkgo-project#401) + Improve the CSR automatical strategy [ginkgo-project#407](ginkgo-project#407), [ginkgo-project#559](ginkgo-project#559) + Memory, speed improvements to the ELL kernel [ginkgo-project#411](ginkgo-project#411) + Multiple improvements and fixes to ParILU [ginkgo-project#419](ginkgo-project#419), [ginkgo-project#427](ginkgo-project#427), [ginkgo-project#429](ginkgo-project#429), [ginkgo-project#456](ginkgo-project#456), [ginkgo-project#544](ginkgo-project#544) + Fix multiple issues with GMRES [ginkgo-project#481](ginkgo-project#481), [ginkgo-project#523](ginkgo-project#523), [ginkgo-project#575](ginkgo-project#575) + Optimize OpenMP matrix conversions [ginkgo-project#505](ginkgo-project#505) + Ensure the linearity of the ILU preconditioner [ginkgo-project#506](ginkgo-project#506) + Fix IR's use of the advanced apply [ginkgo-project#522](ginkgo-project#522) + Fix empty matrices conversions and add tests [ginkgo-project#560](ginkgo-project#560) + Fix complex number support in our math header [ginkgo-project#410](ginkgo-project#410) + Fix CUDA compatibility of the main ginkgo header [ginkgo-project#450](ginkgo-project#450) + Fix isfinite issues [ginkgo-project#465](ginkgo-project#465) + Fix the Array::view memory leak and the array/view copy/move [ginkgo-project#485](ginkgo-project#485) + Fix typos preventing use of some interface functions [ginkgo-project#496](ginkgo-project#496) + Fix the `gko::dim` to abide to the C++ standard [ginkgo-project#498](ginkgo-project#498) + Simplify the executor copy interface [ginkgo-project#516](ginkgo-project#516) + Optimize intermediate storage for Composition [ginkgo-project#540](ginkgo-project#540) + Provide an initial guess for relevant Compositions [ginkgo-project#561](ginkgo-project#561) + Better management of nullptr as criterion [ginkgo-project#562](ginkgo-project#562) + Fix the norm calculations for complex support [ginkgo-project#564](ginkgo-project#564) + Use the return value of the atomic operations in our wrappers [ginkgo-project#405](ginkgo-project#405) + Improve the portability of warp lane masks [ginkgo-project#422](ginkgo-project#422) + Extract thread ID computation into a separate function [ginkgo-project#464](ginkgo-project#464) + Reorder kernel parameters for consistency [ginkgo-project#474](ginkgo-project#474) + Fix the use of `pragma unroll` in HIP [ginkgo-project#492](ginkgo-project#492) + Fix the Ginkgo CMake installation files [ginkgo-project#414](ginkgo-project#414), [ginkgo-project#553](ginkgo-project#553) + Fix the Windows compilation [ginkgo-project#415](ginkgo-project#415) + Always use demangled types in error messages [ginkgo-project#434](ginkgo-project#434), [ginkgo-project#486](ginkgo-project#486) + Add CUDA header dependency to appropriate tests [ginkgo-project#452](ginkgo-project#452) + Fix several sonarqube or compilation warnings [ginkgo-project#453](ginkgo-project#453), [ginkgo-project#463](ginkgo-project#463), [ginkgo-project#532](ginkgo-project#532), [ginkgo-project#569](ginkgo-project#569) + Add shuffle tests [ginkgo-project#460](ginkgo-project#460) + Fix MSVC C2398 error [ginkgo-project#490](ginkgo-project#490) + Fix missing interface tests in test install [ginkgo-project#558](ginkgo-project#558) + Add better norm support in the benchmarks [ginkgo-project#377](ginkgo-project#377) + Add CUDA 10.1 generic SpMV support in benchmarks [ginkgo-project#468](ginkgo-project#468), [ginkgo-project#473](ginkgo-project#473) + Add sparse library ILU in benchmarks [ginkgo-project#487](ginkgo-project#487) + Add overhead benchmarking capacities [ginkgo-project#501](ginkgo-project#501) + Allow benchmarking from a matrix list file [ginkgo-project#503](ginkgo-project#503) + Fix benchmarking issue with JSON and non-finite numbers [ginkgo-project#514](ginkgo-project#514) + Fix benchmark logger crashers with OpenMP [ginkgo-project#565](ginkgo-project#565) + Improvements to the CI setup with HIP compilation [ginkgo-project#421](ginkgo-project#421), [ginkgo-project#466](ginkgo-project#466) + Add MacOSX CI support [ginkgo-project#470](ginkgo-project#470), [ginkgo-project#488](ginkgo-project#488) + Add Windows CI support [ginkgo-project#471](ginkgo-project#471), [ginkgo-project#488](ginkgo-project#488), [ginkgo-project#510](ginkgo-project#510), [ginkgo-project#566](ginkgo-project#566) + Use sanitizers instead of valgrind [ginkgo-project#476](ginkgo-project#476) + Add automatic container generation and update facilities [ginkgo-project#499](ginkgo-project#499) + Fix the CI parallelism settings [ginkgo-project#517](ginkgo-project#517), [ginkgo-project#538](ginkgo-project#538), [ginkgo-project#539](ginkgo-project#539) + Make the codecov patch check informational [ginkgo-project#519](ginkgo-project#519) + Add support for LLVM sanitizers with improved thread sanitizer support [ginkgo-project#578](ginkgo-project#578) + Add an assertion for sparsity pattern equality [ginkgo-project#416](ginkgo-project#416) + Add core and reference multiprecision tests support [ginkgo-project#448](ginkgo-project#448) + Speed up GPU tests by avoiding device reset [ginkgo-project#467](ginkgo-project#467) + Change test matrix location string [ginkgo-project#494](ginkgo-project#494) + Add Ginkgo badges from our tools [ginkgo-project#413](ginkgo-project#413) + Update the `create_new_algorithm.sh` script [ginkgo-project#420](ginkgo-project#420) + Bump copyright and improve license management [ginkgo-project#436](ginkgo-project#436), [ginkgo-project#433](ginkgo-project#433) + Set clang-format minimum requirement [ginkgo-project#441](ginkgo-project#441), [ginkgo-project#484](ginkgo-project#484) + Update git-cmake-format [ginkgo-project#446](ginkgo-project#446), [ginkgo-project#484](ginkgo-project#484) + Disable the development tools by default [ginkgo-project#442](ginkgo-project#442) + Add a script for automatic header formatting [ginkgo-project#447](ginkgo-project#447) + Add GDB pretty printer for `gko::Array` [ginkgo-project#509](ginkgo-project#509) + Improve compilation speed [ginkgo-project#533](ginkgo-project#533) + Add editorconfig support [ginkgo-project#546](ginkgo-project#546) + Add a compile-time check for header self-sufficiency [ginkgo-project#552](ginkgo-project#552)
Minor release v1.1.1. This version of Ginkgo provides a few fixes in Ginkgo's core routines. The supported systems and requirements are unchanged from version 1.1.0. + Improve Ginkgo's installation and fix the `test_install` step ([ginkgo-project#406](ginkgo-project#406)), + Fix some documentation issues ([ginkgo-project#406](ginkgo-project#406)), + Fix multiple code issues reported by sonarqube ([ginkgo-project#406](ginkgo-project#406)), + Update the git-cmake-format repository ([ginkgo-project#399](ginkgo-project#399)), + Improve the global update header script ([ginkgo-project#390](ginkgo-project#390)), + Fix broken bounds checks ([ginkgo-project#388](ginkgo-project#388)), + Fix CSR strategies and improve performance ([ginkgo-project#379](ginkgo-project#379)), + Fix a small typo in the stencil examples ([ginkgo-project#381](ginkgo-project#381)), + Fix ELL error on small matrices ([ginkgo-project#375](ginkgo-project#375)), + Fix SellP read function ([ginkgo-project#374](ginkgo-project#374)), + Add factorization support in `create_new_algorithm.sh` ([ginkgo-project#371](ginkgo-project#371))
Ginkgo version 1.1.0. The Ginkgo team is proud to announce the new minor release of Ginkgo version 1.1.0. This release brings several performance improvements, adds Windows support, adds support for factorizations inside Ginkgo and a new ILU preconditioner based on ParILU algorithm, among other things. For detailed information, check the respective issue. Supported systems and requirements: + For all platforms, cmake 3.9+ + Linux and MacOS + gcc: 5.3+, 6.3+, 7.3+, 8.1+ + clang: 3.9+ + Intel compiler: 2017+ + Apple LLVM: 8.0+ + CUDA module: CUDA 9.0+ + Windows + MinGW and CygWin: gcc 5.3+, 6.3+, 7.3+, 8.1+ + Microsoft Visual Studio: VS 2017 15.7+ + CUDA module: CUDA 9.0+, Microsoft Visual Studio + OpenMP module: MinGW or Cygwin. The current known issues can be found in the [known issues page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues). Additions: + Upper and lower triangular solvers ([ginkgo-project#327](ginkgo-project#327), [ginkgo-project#336](ginkgo-project#336), [ginkgo-project#341](ginkgo-project#341), [ginkgo-project#342](ginkgo-project#342)) + New factorization support in Ginkgo, and addition of the ParILU algorithm ([ginkgo-project#305](ginkgo-project#305), [ginkgo-project#315](ginkgo-project#315), [ginkgo-project#319](ginkgo-project#319), [ginkgo-project#324](ginkgo-project#324)) + New ILU preconditioner ([ginkgo-project#348](ginkgo-project#348), [ginkgo-project#353](ginkgo-project#353)) + Windows MinGW and Cygwin support ([ginkgo-project#347](ginkgo-project#347)) + Windows Visual Studio support ([ginkgo-project#351](ginkgo-project#351)) + New example showing how to use ParILU as a preconditioner ([ginkgo-project#358](ginkgo-project#358)) + New example on using loggers for debugging ([ginkgo-project#360](ginkgo-project#360)) + Add two new 9pt and 27pt stencil examples ([ginkgo-project#300](ginkgo-project#300), [ginkgo-project#306](ginkgo-project#306)) + Allow benchmarking CuSPARSE spmv formats through Ginkgo's benchmarks ([ginkgo-project#303](ginkgo-project#303)) + New benchmark for sparse matrix format conversions ([ginkgo-project#312](https://github.com/ginkgo-project/ginkgo/issues/312)[#317](https://github.com/ginkgo-project/ginkgo/issues/317)) + Add conversions between CSR and Hybrid formats ([ginkgo-project#302](ginkgo-project#302), [ginkgo-project#310](ginkgo-project#310)) + Support for sorting rows in the CSR format by column idices ([ginkgo-project#322](ginkgo-project#322)) + Addition of a CUDA COO SpMM kernel for improved performance ([ginkgo-project#345](ginkgo-project#345)) + Addition of a LinOp to handle perturbations of the form (identity + scalar * basis * projector) ([ginkgo-project#334](ginkgo-project#334)) + New sparsity matrix representation format with Reference and OpenMP kernels ([ginkgo-project#349](ginkgo-project#349), [ginkgo-project#350](ginkgo-project#350)) Fixes: + Accelerate GMRES solver for CUDA executor ([ginkgo-project#363](ginkgo-project#363)) + Fix BiCGSTAB solver convergence ([ginkgo-project#359](ginkgo-project#359)) + Fix CGS logging by reporting the residual for every sub iteration ([ginkgo-project#328](ginkgo-project#328)) + Fix CSR,Dense->Sellp conversion's memory access violation ([ginkgo-project#295](ginkgo-project#295)) + Accelerate CSR->Ell,Hybrid conversions on CUDA ([ginkgo-project#313](ginkgo-project#313), [ginkgo-project#318](ginkgo-project#318)) + Fixed slowdown of COO SpMV on OpenMP ([ginkgo-project#340](ginkgo-project#340)) + Fix gcc 6.4.0 internal compiler error ([ginkgo-project#316](ginkgo-project#316)) + Fix compilation issue on Apple clang++ 10 ([ginkgo-project#322](ginkgo-project#322)) + Make Ginkgo able to compile on Intel 2017 and above ([ginkgo-project#337](ginkgo-project#337)) + Make the benchmarks spmv/solver use the same matrix formats ([ginkgo-project#366](ginkgo-project#366)) + Fix self-written isfinite function ([ginkgo-project#348](ginkgo-project#348)) + Fix Jacobi issues shown by cuda-memcheck Tools and ecosystem: + Multiple improvements to the CI system and tools ([ginkgo-project#296](ginkgo-project#296), [ginkgo-project#311](ginkgo-project#311), [ginkgo-project#365](ginkgo-project#365)) + Multiple improvements to the Ginkgo containers ([ginkgo-project#328](ginkgo-project#328), [ginkgo-project#361](ginkgo-project#361)) + Add sonarqube analysis to Ginkgo ([ginkgo-project#304](ginkgo-project#304), [ginkgo-project#308](ginkgo-project#308), [ginkgo-project#309](ginkgo-project#309)) + Add clang-tidy and iwyu support to Ginkgo ([ginkgo-project#298](ginkgo-project#298)) + Improve Ginkgo's support of xSDK M12 policy by adding the `TPL_` arguments to CMake ([ginkgo-project#300](ginkgo-project#300)) + Add support for the xSDK R7 policy ([ginkgo-project#325](ginkgo-project#325)) + Fix examples in html documentation ([ginkgo-project#367](ginkgo-project#367))
First release of Ginkgo, version 1.0.0. The Ginkgo team is proud to announce the first release of Ginkgo, the next-generation high-performance on-node sparse linear algebra library. Ginkgo leverages the features of modern C++ to give you a tool for the iterative solution of linear systems that is: * Easy to use. Interfaces with cryptic naming schemes and dozens of parameters are a thing of the past. Ginkgo was built with good software design in mind, making simple things simple to express. * High performance. Our optimized CUDA kernels ensure you are reaching the potential of today's GPU-accelerated high-end systems, while Ginkgo's open design allows extension to future hardware architectures. * Controllable. While Ginkgo can automatically move your data when needed, you remain in control by optionally specifying when the data is moved and what is its ownership scheme. * Composable. Iterative solution of linear systems is an extremely versatile field, where effective methods are built by mixing and matching various components. Need a GMRES solver preconditioned with a block-Jacobi enhanced BiCGSTAB? Thanks to its novel linear operator abstraction, Ginkgo can do it! * Extensible. Did not find a component you were looking for? Ginkgo is designed to be easily extended in various ways. You can provide your own loggers, stopping criteria, matrix formats, preconditioners and solvers to Ginkgo and have them integrate as well as the natively supported ones, without the need to modify or recompile the library. For more details, access the release notes on Github: https://github.com/ginkgo-project/ginkgo/releases