Tags: learning-chip/ginkgo
Tags
Merge release 1.4.0 to master Release 1.4.0 to master The Ginkgo team is proud to announce the new Ginkgo minor release 1.4.0. This release brings most of the Ginkgo functionality to the Intel DPC++ ecosystem which enables Intel-GPU and CPU execution. The only Ginkgo features which have not been ported yet are some preconditioners. Ginkgo's mixed-precision support is greatly enhanced thanks to: 1. The new Accessor concept, which allows writing kernels featuring on-the-fly memory compression, among other features. The accessor can be used as header-only, see the [accessor BLAS benchmarks repository](https://github.com/ginkgo-project/accessor-BLAS/tree/develop) as a usage example. 2. All LinOps now transparently support mixed-precision execution. By default, this is done through a temporary copy which may have a performance impact but already allows mixed-precision research. Native mixed-precision ELL kernels are implemented which do not see this cost. The accessor is also leveraged in a new CB-GMRES solver which allows for performance improvements by compressing the Krylov basis vectors. Many other features have been added to Ginkgo, such as reordering support, a new IDR solver, Incomplete Cholesky preconditioner, matrix assembly support (only CPU for now), machine topology information, and more! Supported systems and requirements: + For all platforms, cmake 3.13+ + C++14 compliant compiler + Linux and MacOS + gcc: 5.3+, 6.3+, 7.3+, all versions after 8.1+ + clang: 3.9+ + Intel compiler: 2018+ + Apple LLVM: 8.0+ + CUDA module: CUDA 9.0+ + HIP module: ROCm 3.5+ + DPC++ module: Intel OneAPI 2021.3. Set the CXX compiler to `dpcpp`. + Windows + MinGW and Cygwin: gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+ + Microsoft Visual Studio: VS 2019 + CUDA module: CUDA 9.0+, Microsoft Visual Studio + OpenMP module: MinGW or Cygwin. Algorithm and important feature additions: + Add a new DPC++ Executor for SYCL execution and other base utilities [ginkgo-project#648](ginkgo-project#648), [ginkgo-project#661](ginkgo-project#661), [ginkgo-project#757](ginkgo-project#757), [ginkgo-project#832](ginkgo-project#832) + Port matrix formats, solvers and related kernels to DPC++. For some kernels, also make use of a shared kernel implementation for all executors (except Reference). [ginkgo-project#710](ginkgo-project#710), [ginkgo-project#799](ginkgo-project#799), [ginkgo-project#779](ginkgo-project#779), [ginkgo-project#733](ginkgo-project#733), [ginkgo-project#844](ginkgo-project#844), [ginkgo-project#843](ginkgo-project#843), [ginkgo-project#789](ginkgo-project#789), [ginkgo-project#845](ginkgo-project#845), [ginkgo-project#849](ginkgo-project#849), [ginkgo-project#855](ginkgo-project#855), [ginkgo-project#856](ginkgo-project#856) + Add accessors which allow multi-precision kernels, among other things. [ginkgo-project#643](ginkgo-project#643), [ginkgo-project#708](ginkgo-project#708) + Add support for mixed precision operations through apply in all LinOps. [ginkgo-project#677](ginkgo-project#677) + Add incomplete Cholesky factorizations and preconditioners as well as some improvements to ILU. [ginkgo-project#672](ginkgo-project#672), [ginkgo-project#837](ginkgo-project#837), [ginkgo-project#846](ginkgo-project#846) + Add an AMGX implementation and kernels on all devices but DPC++. [ginkgo-project#528](ginkgo-project#528), [ginkgo-project#695](ginkgo-project#695), [ginkgo-project#860](ginkgo-project#860) + Add a new mixed-precision capability solver, Compressed Basis GMRES (CB-GMRES). [ginkgo-project#693](ginkgo-project#693), [ginkgo-project#763](ginkgo-project#763) + Add the IDR(s) solver. [ginkgo-project#620](ginkgo-project#620) + Add a new fixed-size block CSR matrix format (for the Reference executor). [ginkgo-project#671](ginkgo-project#671), [ginkgo-project#730](ginkgo-project#730) + Add native mixed-precision support to the ELL format. [ginkgo-project#717](ginkgo-project#717), [ginkgo-project#780](ginkgo-project#780) + Add Reverse Cuthill-McKee reordering [ginkgo-project#500](ginkgo-project#500), [ginkgo-project#649](ginkgo-project#649) + Add matrix assembly support on CPUs. [ginkgo-project#644](ginkgo-project#644) + Extends ISAI from triangular to general and spd matrices. [ginkgo-project#690](ginkgo-project#690) Other additions: + Add the possibility to apply real matrices to complex vectors. [ginkgo-project#655](ginkgo-project#655), [ginkgo-project#658](ginkgo-project#658) + Add functions to compute the absolute of a matrix format. [ginkgo-project#636](ginkgo-project#636) + Add symmetric permutation and improve existing permutations. [ginkgo-project#684](ginkgo-project#684), [ginkgo-project#657](ginkgo-project#657), [ginkgo-project#663](ginkgo-project#663) + Add a MachineTopology class with HWLOC support [ginkgo-project#554](ginkgo-project#554), [ginkgo-project#697](ginkgo-project#697) + Add an implicit residual norm criterion. [ginkgo-project#702](ginkgo-project#702), [ginkgo-project#818](ginkgo-project#818), [ginkgo-project#850](ginkgo-project#850) + Row-major accessor is generalized to more than 2 dimensions and a new "block column-major" accessor has been added. [ginkgo-project#707](ginkgo-project#707) + Add an heat equation example. [ginkgo-project#698](ginkgo-project#698), [ginkgo-project#706](ginkgo-project#706) + Add ccache support in CMake and CI. [ginkgo-project#725](ginkgo-project#725), [ginkgo-project#739](ginkgo-project#739) + Allow tuning and benchmarking variables non intrusively. [ginkgo-project#692](ginkgo-project#692) + Add triangular solver benchmark [ginkgo-project#664](ginkgo-project#664) + Add benchmarks for BLAS operations [ginkgo-project#772](ginkgo-project#772), [ginkgo-project#829](ginkgo-project#829) + Add support for different precisions and consistent index types in benchmarks. [ginkgo-project#675](ginkgo-project#675), [ginkgo-project#828](ginkgo-project#828) + Add a Github bot system to facilitate development and PR management. [ginkgo-project#667](ginkgo-project#667), [ginkgo-project#674](ginkgo-project#674), [ginkgo-project#689](ginkgo-project#689), [ginkgo-project#853](ginkgo-project#853) + Add Intel (DPC++) CI support and enable CI on HPC systems. [ginkgo-project#736](ginkgo-project#736), [ginkgo-project#751](ginkgo-project#751), [ginkgo-project#781](ginkgo-project#781) + Add ssh debugging for Github Actions CI. [ginkgo-project#749](ginkgo-project#749) + Add pipeline segmentation for better CI speed. [ginkgo-project#737](ginkgo-project#737) Changes: + Add a Scalar Jacobi specialization and kernels. [ginkgo-project#808](ginkgo-project#808), [ginkgo-project#834](ginkgo-project#834), [ginkgo-project#854](ginkgo-project#854) + Add implicit residual log for solvers and benchmarks. [ginkgo-project#714](ginkgo-project#714) + Change handling of the conjugate in the dense dot product. [ginkgo-project#755](ginkgo-project#755) + Improved Dense stride handling. [ginkgo-project#774](ginkgo-project#774) + Multiple improvements to the OpenMP kernels performance, including COO, an exclusive prefix sum, and more. [ginkgo-project#703](ginkgo-project#703), [ginkgo-project#765](ginkgo-project#765), [ginkgo-project#740](ginkgo-project#740) + Allow specialization of submatrix and other dense creation functions in solvers. [ginkgo-project#718](ginkgo-project#718) + Improved Identity constructor and treatment of rectangular matrices. [ginkgo-project#646](ginkgo-project#646) + Allow CUDA/HIP executors to select allocation mode. [ginkgo-project#758](ginkgo-project#758) + Check if executors share the same memory. [ginkgo-project#670](ginkgo-project#670) + Improve test install and smoke testing support. [ginkgo-project#721](ginkgo-project#721) + Update the JOSS paper citation and add publications in the documentation. [ginkgo-project#629](ginkgo-project#629), [ginkgo-project#724](ginkgo-project#724) + Improve the version output. [ginkgo-project#806](ginkgo-project#806) + Add some utilities for dim and span. [ginkgo-project#821](ginkgo-project#821) + Improved solver and preconditioner benchmarks. [ginkgo-project#660](ginkgo-project#660) + Improve benchmark timing and output. [ginkgo-project#669](ginkgo-project#669), [ginkgo-project#791](ginkgo-project#791), [ginkgo-project#801](ginkgo-project#801), [ginkgo-project#812](ginkgo-project#812) Fixes: + Sorting fix for the Jacobi preconditioner. [ginkgo-project#659](ginkgo-project#659) + Also log the first residual norm in CGS [ginkgo-project#735](ginkgo-project#735) + Fix BiCG and HIP CSR to work with complex matrices. [ginkgo-project#651](ginkgo-project#651) + Fix Coo SpMV on strided vectors. [ginkgo-project#807](ginkgo-project#807) + Fix segfault of extract_diagonal, add short-and-fat test. [ginkgo-project#769](ginkgo-project#769) + Fix device_reset issue by moving counter/mutex to device. [ginkgo-project#810](ginkgo-project#810) + Fix `EnableLogging` superclass. [ginkgo-project#841](ginkgo-project#841) + Support ROCm 4.1.x and breaking HIP_PLATFORM changes. [ginkgo-project#726](ginkgo-project#726) + Decreased test size for a few device tests. [ginkgo-project#742](ginkgo-project#742) + Fix multiple issues with our CMake HIP and RPATH setup. [ginkgo-project#712](ginkgo-project#712), [ginkgo-project#745](ginkgo-project#745), [ginkgo-project#709](ginkgo-project#709) + Cleanup our CMake installation step. [ginkgo-project#713](ginkgo-project#713) + Various simplification and fixes to the Windows CMake setup. [ginkgo-project#720](ginkgo-project#720), [ginkgo-project#785](ginkgo-project#785) + Simplify third-party integration. [ginkgo-project#786](ginkgo-project#786) + Improve Ginkgo device arch flags management. [ginkgo-project#696](ginkgo-project#696) + Other fixes and improvements to the CMake setup. [ginkgo-project#685](ginkgo-project#685), [ginkgo-project#792](ginkgo-project#792), [ginkgo-project#705](ginkgo-project#705), [ginkgo-project#836](ginkgo-project#836) + Clarification of dense norm documentation [ginkgo-project#784](ginkgo-project#784) + Various development tools fixes and improvements [ginkgo-project#738](ginkgo-project#738), [ginkgo-project#830](ginkgo-project#830), [ginkgo-project#840](ginkgo-project#840) + Make multiple operators/constructors explicit. [ginkgo-project#650](ginkgo-project#650), [ginkgo-project#761](ginkgo-project#761) + Fix some issues, memory leaks and warnings found by MSVC. [ginkgo-project#666](ginkgo-project#666), [ginkgo-project#731](ginkgo-project#731) + Improved solver memory estimates and consistent iteration counts [ginkgo-project#691](ginkgo-project#691) + Various logger improvements and fixes [ginkgo-project#728](ginkgo-project#728), [ginkgo-project#743](ginkgo-project#743), [ginkgo-project#754](ginkgo-project#754) + Fix for ForwardIterator requirements in iterator_factory. [ginkgo-project#665](ginkgo-project#665) + Various benchmark fixes. [ginkgo-project#647](ginkgo-project#647), [ginkgo-project#673](ginkgo-project#673), [ginkgo-project#722](ginkgo-project#722) + Various CI fixes and improvements. [ginkgo-project#642](ginkgo-project#642), [ginkgo-project#641](ginkgo-project#641), [ginkgo-project#795](ginkgo-project#795), [ginkgo-project#783](ginkgo-project#783), [ginkgo-project#793](ginkgo-project#793), [ginkgo-project#852](ginkgo-project#852) Related PR: ginkgo-project#866
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