Skip to content

Tags

Tags give the ability to mark specific points in history as being important
This project is mirrored from https://:*****@github.com/ginkgo-project/ginkgo.git. Pull mirroring updated .
  • v1.8.0
    586b1754 · Merge Release 1.8.0 ·
  • v1.7.0
  • v1.6.0
    1f1ed46e · Merge Release 1.6.0 ·
  • v1.5.0
    Release 1.5.0
    
    The Ginkgo team is proud to announce the new Ginkgo minor release 1.5.0. This release brings many important new features such as:
    
    - MPI-based multi-node support for all matrix formats and most solvers;
    - full DPC++/SYCL support,
    - functionality and interface for GPU-resident sparse direct solvers,
    - an interface for wrapping solvers with scaling and reordering applied,
    - a new algebraic Multigrid solver/preconditioner,
    - improved mixed-precision support,
    - support for device matrix assembly,
    
    and much more.
    
    If you face an issue, please first check our [known issues page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues) and the [open issues list](https://github.com/ginkgo-project/ginkgo/issues) and if you do not find a solution, feel free to [open a new issue](https://github.com/ginkgo-project/ginkgo/issues/new/choose) or ask a question using the [github discussions](https://github.com/ginkgo-project/ginkgo/discussions).
    
    Supported systems and requirements:
    + For all platforms, CMake 3.13+
    + C++14 compliant compiler
    + Linux and macOS
      + GCC: 5.5+
      + clang: 3.9+
      + Intel compiler: 2018+
      + Apple LLVM: 8.0+
      + NVHPC: 22.7+
      + Cray Compiler: 14.0.1+
      + CUDA module: CUDA 9.2+ or NVHPC 22.7+
      + HIP module: ROCm 4.0+
      + DPC++ module: Intel OneAPI 2021.3 with oneMKL and oneDPL. Set the CXX compiler to `dpcpp`.
    + Windows
      + MinGW and Cygwin: GCC 5.5+
      + Microsoft Visual Studio: VS 2019
      + CUDA module: CUDA 9.2+, Microsoft Visual Studio
      + OpenMP module: MinGW or Cygwin.
    
    Algorithm and important feature additions:
    + Add MPI-based multi-node for all matrix formats and solvers (except GMRES and IDR). ([#676](https://github.com/ginkgo-project/ginkgo/pull/676), [#908](https://github.com/ginkgo-project/ginkgo/pull/908), [#909](https://github.com/ginkgo-project/ginkgo/pull/909), [#932](https://github.com/ginkgo-project/ginkgo/pull/932), [#951](https://github.com/ginkgo-project/ginkgo/pull/951), [#961](https://github.com/ginkgo-project/ginkgo/pull/961), [#971](https://github.com/ginkgo-project/ginkgo/pull/971), [#976](https://github.com/ginkgo-project/ginkgo/pull/976), [#985](https://github.com/ginkgo-project/ginkgo/pull/985), [#1007](https://github.com/ginkgo-project/ginkgo/pull/1007), [#1030](https://github.com/ginkgo-project/ginkgo/pull/1030), [#1054](https://github.com/ginkgo-project/ginkgo/pull/1054), [#1100](https://github.com/ginkgo-project/ginkgo/pull/1100), [#1148](https://github.com/ginkgo-project/ginkgo/pull/1148))
    + Porting the remaining algorithms (preconditioners like ISAI, Jacobi, Multigrid, ParILU(T) and ParIC(T)) to DPC++/SYCL, update to SYCL 2020, and improve support and performance ([#896](https://github.com/ginkgo-project/ginkgo/pull/896), [#924](https://github.com/ginkgo-project/ginkgo/pull/924), [#928](https://github.com/ginkgo-project/ginkgo/pull/928), [#929](https://github.com/ginkgo-project/ginkgo/pull/929), [#933](https://github.com/ginkgo-project/ginkgo/pull/933), [#943](https://github.com/ginkgo-project/ginkgo/pull/943), [#960](https://github.com/ginkgo-project/ginkgo/pull/960), [#1057](https://github.com/ginkgo-project/ginkgo/pull/1057), [#1110](https://github.com/ginkgo-project/ginkgo/pull/1110),  [#1142](https://github.com/ginkgo-project/ginkgo/pull/1142))
    + Add a Sparse Direct interface supporting GPU-resident numerical LU factorization, symbolic Cholesky factorization, improved triangular solvers, and more ([#957](https://github.com/ginkgo-project/ginkgo/pull/957), [#1058](https://github.com/ginkgo-project/ginkgo/pull/1058), [#1072](https://github.com/ginkgo-project/ginkgo/pull/1072), [#1082](https://github.com/ginkgo-project/ginkgo/pull/1082))
    + Add a ScaleReordered interface that can wrap solvers and automatically apply reorderings and scalings ([#1059](https://github.com/ginkgo-project/ginkgo/pull/1059))
    + Add a Multigrid solver and improve the aggregation based PGM coarsening scheme ([#542](https://github.com/ginkgo-project/ginkgo/pull/542), [#913](https://github.com/ginkgo-project/ginkgo/pull/913), [#980](https://github.com/ginkgo-project/ginkgo/pull/980), [#982](https://github.com/ginkgo-project/ginkgo/pull/982),  [#986](https://github.com/ginkgo-project/ginkgo/pull/986))
    + Add infrastructure for unified, lambda-based, backend agnostic, kernels and utilize it for some simple kernels ([#833](https://github.com/ginkgo-project/ginkgo/pull/833), [#910](https://github.com/ginkgo-project/ginkgo/pull/910), [#926](https://github.com/ginkgo-project/ginkgo/pull/926))
    + Merge different CUDA, HIP, DPC++ and OpenMP tests under a common interface ([#904](https://github.com/ginkgo-project/ginkgo/pull/904), [#973](https://github.com/ginkgo-project/ginkgo/pull/973), [#1044](https://github.com/ginkgo-project/ginkgo/pull/1044), [#1117](https://github.com/ginkgo-project/ginkgo/pull/1117))
    + Add a device_matrix_data type for device-side matrix assembly ([#886](https://github.com/ginkgo-project/ginkgo/pull/886), [#963](https://github.com/ginkgo-project/ginkgo/pull/963), [#965](https://github.com/ginkgo-project/ginkgo/pull/965))
    + Add support for mixed real/complex BLAS operations ([#864](https://github.com/ginkgo-project/ginkgo/pull/864))
    + Add a FFT LinOp for all but DPC++/SYCL ([#701](https://github.com/ginkgo-project/ginkgo/pull/701))
    + Add FBCSR support for NVIDIA and AMD GPUs and CPUs with OpenMP ([#775](https://github.com/ginkgo-project/ginkgo/pull/775))
    + Add CSR scaling ([#848](https://github.com/ginkgo-project/ginkgo/pull/848))
    + Add array::const_view and equivalent to create constant matrices from non-const data ([#890](https://github.com/ginkgo-project/ginkgo/pull/890))
    + Add a RowGatherer LinOp supporting mixed precision to gather dense matrix rows ([#901](https://github.com/ginkgo-project/ginkgo/pull/901))
    + Add mixed precision SparsityCsr SpMV support ([#970](https://github.com/ginkgo-project/ginkgo/pull/970))
    + Allow creating CSR submatrix including from (possibly discontinuous) index sets ([#885](https://github.com/ginkgo-project/ginkgo/pull/885), [#964](https://github.com/ginkgo-project/ginkgo/pull/964))
    + Add a scaled identity addition (M <- aI + bM) feature interface and impls for Csr and Dense ([#942](https://github.com/ginkgo-project/ginkgo/pull/942))
    
    Deprecations and important changes:
    + Deprecate AmgxPgm in favor of the new Pgm name. ([#1149](https://github.com/ginkgo-project/ginkgo/pull/1149)).
    + Deprecate specialized residual norm classes in favor of a common `ResidualNorm` class ([#1101](https://github.com/ginkgo-project/ginkgo/pull/1101))
    + Deprecate CamelCase non-polymorphic types in favor of snake_case versions (like array, machine_topology, uninitialized_array, index_set) ([#1031](https://github.com/ginkgo-project/ginkgo/pull/1031), [#1052](https://github.com/ginkgo-project/ginkgo/pull/1052))
    + Bug fix: restrict gko::share to rvalue references (*possible interface break*) ([#1020](https://github.com/ginkgo-project/ginkgo/pull/1020))
    + Bug fix: when using cuSPARSE's triangular solvers, specifying the factory parameter `num_rhs` is now required when solving for more than one right-hand side, otherwise an exception is thrown ([#1184](https://github.com/ginkgo-project/ginkgo/pull/1184)).
    + Drop official support for old CUDA < 9.2 ([#887](https://github.com/ginkgo-project/ginkgo/pull/887))
    
    Improved performance additions:
    + Reuse tmp storage in reductions in solvers and add a mutable workspace to all solvers ([#1013](https://github.com/ginkgo-project/ginkgo/pull/1013), [#1028](https://github.com/ginkgo-project/ginkgo/pull/1028))
    + Add HIP unsafe atomic option for AMD ([#1091](https://github.com/ginkgo-project/ginkgo/pull/1091))
    + Prefer vendor implementations for Dense dot, conj_dot and norm2 when available ([#967](https://github.com/ginkgo-project/ginkgo/pull/967)).
    + Tuned OpenMP SellP, COO, and ELL SpMV kernels for a small number of RHS ([#809](https://github.com/ginkgo-project/ginkgo/pull/809))
    
    Fixes:
    + Fix various compilation warnings ([#1076](https://github.com/ginkgo-project/ginkgo/pull/1076), [#1183](https://github.com/ginkgo-project/ginkgo/pull/1183), [#1189](https://github.com/ginkgo-project/ginkgo/pull/1189))
    + Fix issues with hwloc-related tests ([#1074](https://github.com/ginkgo-project/ginkgo/pull/1074))
    + Fix include headers for GCC 12 ([#1071](https://github.com/ginkgo-project/ginkgo/pull/1071))
    + Fix for simple-solver-logging example ([#1066](https://github.com/ginkgo-project/ginkgo/pull/1066))
    + Fix for potential memory leak in Logger ([#1056](https://github.com/ginkgo-project/ginkgo/pull/1056))
    + Fix logging of mixin classes ([#1037](https://github.com/ginkgo-project/ginkgo/pull/1037))
    + Improve value semantics for LinOp types, like moved-from state in cross-executor copy/clones ([#753](https://github.com/ginkgo-project/ginkgo/pull/753))
    + Fix some matrix SpMV and conversion corner cases ([#905](https://github.com/ginkgo-project/ginkgo/pull/905), [#978](https://github.com/ginkgo-project/ginkgo/pull/978))
    + Fix uninitialized data ([#958](https://github.com/ginkgo-project/ginkgo/pull/958))
    + Fix CUDA version requirement for cusparseSpSM ([#953](https://github.com/ginkgo-project/ginkgo/pull/953))
    + Fix several issues within bash-script ([#1016](https://github.com/ginkgo-project/ginkgo/pull/1016))
    + Fixes for `NVHPC` compiler support ([#1194](https://github.com/ginkgo-project/ginkgo/pull/1194))
    
    Other additions:
    + Simplify and properly name GMRES kernels ([#861](https://github.com/ginkgo-project/ginkgo/pull/861))
    + Improve pkg-config support for non-CMake libraries ([#923](https://github.com/ginkgo-project/ginkgo/pull/923), [#1109](https://github.com/ginkgo-project/ginkgo/pull/1109))
    + Improve gdb pretty printer ([#987](https://github.com/ginkgo-project/ginkgo/pull/987), [#1114](https://github.com/ginkgo-project/ginkgo/pull/1114))
    + Add a logger highlighting inefficient allocation and copy patterns ([#1035](https://github.com/ginkgo-project/ginkgo/pull/1035))
    + Improved and optimized test random matrix generation ([#954](https://github.com/ginkgo-project/ginkgo/pull/954), [#1032](https://github.com/ginkgo-project/ginkgo/pull/1032))
    + Better CSR strategy defaults ([#969](https://github.com/ginkgo-project/ginkgo/pull/969))
    + Add `move_from` to `PolymorphicObject` ([#997](https://github.com/ginkgo-project/ginkgo/pull/997))
    + Remove unnecessary device_guard usage ([#956](https://github.com/ginkgo-project/ginkgo/pull/956))
    + Improvements to the generic accessor for mixed-precision ([#727](https://github.com/ginkgo-project/ginkgo/pull/727))
    + Add a naive lower triangular solver implementation for CUDA ([#764](https://github.com/ginkgo-project/ginkgo/pull/764))
    + Add support for int64 indices from CUDA 11 onward with SpMV and SpGEMM ([#897](https://github.com/ginkgo-project/ginkgo/pull/897))
    + Add a L1 norm implementation ([#900](https://github.com/ginkgo-project/ginkgo/pull/900))
    + Add reduce_add for arrays ([#831](https://github.com/ginkgo-project/ginkgo/pull/831))
    + Add utility to simplify Dense View creation from an existing Dense vector ([#1136](https://github.com/ginkgo-project/ginkgo/pull/1136)).
    + Add a custom transpose implementation for Fbcsr and Csr transpose for unsupported vendor types ([#1123](https://github.com/ginkgo-project/ginkgo/pull/1123))
    + Make IDR random initilization deterministic ([#1116](https://github.com/ginkgo-project/ginkgo/pull/1116))
    + Move the algorithm choice for triangular solvers from Csr::strategy_type to a factory parameter ([#1088](https://github.com/ginkgo-project/ginkgo/pull/1088))
    + Update CUDA archCoresPerSM ([#1175](https://github.com/ginkgo-project/ginkgo/pull/1116))
    + Add kernels for Csr sparsity pattern lookup ([#994](https://github.com/ginkgo-project/ginkgo/pull/994))
    + Differentiate between structural and numerical zeros in Ell/Sellp ([#1027](https://github.com/ginkgo-project/ginkgo/pull/1027))
    + Add a binary IO format for matrix data ([#984](https://github.com/ginkgo-project/ginkgo/pull/984))
    + Add a tuple zip_iterator implementation ([#966](https://github.com/ginkgo-project/ginkgo/pull/966))
    + Simplify kernel stubs and declarations ([#888](https://github.com/ginkgo-project/ginkgo/pull/888))
    + Simplify GKO_REGISTER_OPERATION with lambdas ([#859](https://github.com/ginkgo-project/ginkgo/pull/859))
    + Simplify copy to device in tests and examples ([#863](https://github.com/ginkgo-project/ginkgo/pull/863))
    + More verbose output to array assertions ([#858](https://github.com/ginkgo-project/ginkgo/pull/858))
    + Allow parallel compilation for Jacobi kernels ([#871](https://github.com/ginkgo-project/ginkgo/pull/871))
    + Change clang-format pointer alignment to left ([#872](https://github.com/ginkgo-project/ginkgo/pull/872))
    + Various improvements and fixes to the benchmarking framework ([#750](https://github.com/ginkgo-project/ginkgo/pull/750), [#759](https://github.com/ginkgo-project/ginkgo/pull/759), [#870](https://github.com/ginkgo-project/ginkgo/pull/870), [#911](https://github.com/ginkgo-project/ginkgo/pull/911), [#1033](https://github.com/ginkgo-project/ginkgo/pull/1033), [#1137](https://github.com/ginkgo-project/ginkgo/pull/1137))
    + Various documentation improvements ([#892](https://github.com/ginkgo-project/ginkgo/pull/892), [#921](https://github.com/ginkgo-project/ginkgo/pull/921), [#950](https://github.com/ginkgo-project/ginkgo/pull/950), [#977](https://github.com/ginkgo-project/ginkgo/pull/977), [#1021](https://github.com/ginkgo-project/ginkgo/pull/1021), [#1068](https://github.com/ginkgo-project/ginkgo/pull/1068), [#1069](https://github.com/ginkgo-project/ginkgo/pull/1069), [#1080](https://github.com/ginkgo-project/ginkgo/pull/1080), [#1081](https://github.com/ginkgo-project/ginkgo/pull/1081), [#1108](https://github.com/ginkgo-project/ginkgo/pull/1108), [#1153](https://github.com/ginkgo-project/ginkgo/pull/1153), [#1154](https://github.com/ginkgo-project/ginkgo/pull/1154))
    + Various CI improvements ([#868](https://github.com/ginkgo-project/ginkgo/pull/868), [#874](https://github.com/ginkgo-project/ginkgo/pull/874), [#884](https://github.com/ginkgo-project/ginkgo/pull/884), [#889](https://github.com/ginkgo-project/ginkgo/pull/889), [#899](https://github.com/ginkgo-project/ginkgo/pull/899), [#903](https://github.com/ginkgo-project/ginkgo/pull/903),  [#922](https://github.com/ginkgo-project/ginkgo/pull/922), [#925](https://github.com/ginkgo-project/ginkgo/pull/925), [#930](https://github.com/ginkgo-project/ginkgo/pull/930), [#936](https://github.com/ginkgo-project/ginkgo/pull/936), [#937](https://github.com/ginkgo-project/ginkgo/pull/937), [#958](https://github.com/ginkgo-project/ginkgo/pull/958), [#882](https://github.com/ginkgo-project/ginkgo/pull/882), [#1011](https://github.com/ginkgo-project/ginkgo/pull/1011), [#1015](https://github.com/ginkgo-project/ginkgo/pull/1015), [#989](https://github.com/ginkgo-project/ginkgo/pull/989), [#1039](https://github.com/ginkgo-project/ginkgo/pull/1039), [#1042](https://github.com/ginkgo-project/ginkgo/pull/1042), [#1067](https://github.com/ginkgo-project/ginkgo/pull/1067), [#1073](https://github.com/ginkgo-project/ginkgo/pull/1073), [#1075](https://github.com/ginkgo-project/ginkgo/pull/1075), [#1083](https://github.com/ginkgo-project/ginkgo/pull/1083), [#1084](https://github.com/ginkgo-project/ginkgo/pull/1084), [#1085](https://github.com/ginkgo-project/ginkgo/pull/1085), [#1139](https://github.com/ginkgo-project/ginkgo/pull/1139), [#1178](https://github.com/ginkgo-project/ginkgo/pull/1178), [#1187](https://github.com/ginkgo-project/ginkgo/pull/1187))
    
  • TEST
    TEST tag please ignore
  • v1.4.0
  • v1.3.0
    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). [#479](https://github.com/ginkgo-project/ginkgo/pull/479)
    + Add a DiagonalExtractable interface. [#563](https://github.com/ginkgo-project/ginkgo/pull/563)
    + Add a new diagonal Matrix Format. [#580](https://github.com/ginkgo-project/ginkgo/pull/580)
    + Add Cuda11 support. [#603](https://github.com/ginkgo-project/ginkgo/pull/603)
    + Add information output after CMake configuration. [#610](https://github.com/ginkgo-project/ginkgo/pull/610)
    + Add a new preconditioner export example. [#595](https://github.com/ginkgo-project/ginkgo/pull/595)
    + Add a new cuda-memcheck CI job. [#592](https://github.com/ginkgo-project/ginkgo/pull/592)
    
    Changes:
    + Use unified memory in CUDA debug builds. [#621](https://github.com/ginkgo-project/ginkgo/pull/621)
    + Improve `BENCHMARKING.md` with more detailed info. [#619](https://github.com/ginkgo-project/ginkgo/pull/619)
    + Use C++14 standard instead of C++11. [#611](https://github.com/ginkgo-project/ginkgo/pull/611)
    + Update the Ampere sm information and CudaArchitectureSelector. [#588](https://github.com/ginkgo-project/ginkgo/pull/588)
    
    Fixes:
    + Fix documentation warnings and errors. [#624](https://github.com/ginkgo-project/ginkgo/pull/624)
    + Fix warnings for diagonal matrix format. [#622](https://github.com/ginkgo-project/ginkgo/pull/622)
    + Fix criterion factory parameters in CUDA. [#586](https://github.com/ginkgo-project/ginkgo/pull/586)
    + Fix the norm-type in the examples. [#612](https://github.com/ginkgo-project/ginkgo/pull/612)
    + Fix the WAW race in OpenMP is_sorted_by_column_index. [#617](https://github.com/ginkgo-project/ginkgo/pull/617)
    + Fix the example's exec_map by creating the executor only if requested. [#602](https://github.com/ginkgo-project/ginkgo/pull/602)
    + Fix some CMake warnings. [#614](https://github.com/ginkgo-project/ginkgo/pull/614)
    + Fix Windows building documentation. [#601](https://github.com/ginkgo-project/ginkgo/pull/601)
    + Warn when CXX and CUDA host compiler do not match. [#607](https://github.com/ginkgo-project/ginkgo/pull/607)
    + Fix reduce_add, prefix_sum, and doc-build. [#593](https://github.com/ginkgo-project/ginkgo/pull/593)
    + Fix find_library(cublas) issue on machines installing multiple cuda. [#591](https://github.com/ginkgo-project/ginkgo/pull/591)
    + Fix allocator in sellp read. [#589](https://github.com/ginkgo-project/ginkgo/pull/589)
    + Fix the CAS with HIP and NVIDIA backends. [#585](https://github.com/ginkgo-project/ginkgo/pull/585)
    
    Deletions:
    + Remove unused preconditioner parameter in LowerTrs. [#587](https://github.com/ginkgo-project/ginkgo/pull/587)
  • v1.2.0
    b4be2be9 · Merge Release 1.2.0 ·
    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 [#344](https://github.com/ginkgo-project/ginkgo/pull/344), [#357](https://github.com/ginkgo-project/ginkgo/pull/357), [#384](https://github.com/ginkgo-project/ginkgo/pull/384), [#373](https://github.com/ginkgo-project/ginkgo/pull/373), [#391](https://github.com/ginkgo-project/ginkgo/pull/391), [#396](https://github.com/ginkgo-project/ginkgo/pull/396), [#395](https://github.com/ginkgo-project/ginkgo/pull/395), [#393](https://github.com/ginkgo-project/ginkgo/pull/393), [#404](https://github.com/ginkgo-project/ginkgo/pull/404), [#439](https://github.com/ginkgo-project/ginkgo/pull/439), [#443](https://github.com/ginkgo-project/ginkgo/pull/443), [#567](https://github.com/ginkgo-project/ginkgo/pull/567)
    + Add a new ISAI preconditioner [#489](https://github.com/ginkgo-project/ginkgo/pull/489), [#502](https://github.com/ginkgo-project/ginkgo/pull/502), [#512](https://github.com/ginkgo-project/ginkgo/pull/512), [#508](https://github.com/ginkgo-project/ginkgo/pull/508), [#520](https://github.com/ginkgo-project/ginkgo/pull/520)
    + Add support for ParILUT and ParICT factorization with ILU preconditioners [#400](https://github.com/ginkgo-project/ginkgo/pull/400)
    + Add a new BiCG solver [#438](https://github.com/ginkgo-project/ginkgo/pull/438)
    + Add a new permutation matrix format [#352](https://github.com/ginkgo-project/ginkgo/pull/352), [#469](https://github.com/ginkgo-project/ginkgo/pull/469)
    + Add CSR SpGEMM support [#386](https://github.com/ginkgo-project/ginkgo/pull/386), [#398](https://github.com/ginkgo-project/ginkgo/pull/398), [#418](https://github.com/ginkgo-project/ginkgo/pull/418), [#457](https://github.com/ginkgo-project/ginkgo/pull/457)
    + Add CSR SpGEAM support [#556](https://github.com/ginkgo-project/ginkgo/pull/556)
    + Make all solvers and preconditioners transposable [#535](https://github.com/ginkgo-project/ginkgo/pull/535)
    + Add CsrBuilder and CooBuilder for intrusive access to matrix arrays [#437](https://github.com/ginkgo-project/ginkgo/pull/437)
    + Add a standard-compliant allocator based on the Executors [#504](https://github.com/ginkgo-project/ginkgo/pull/504)
    + Support conversions for all LinOp between double and float [#521](https://github.com/ginkgo-project/ginkgo/pull/521)
    + Add a new boolean to the CUDA and HIP executors to control DeviceReset (default off) [#557](https://github.com/ginkgo-project/ginkgo/pull/557)
    + Add a relaxation factor to IR to represent Richardson Relaxation [#574](https://github.com/ginkgo-project/ginkgo/pull/574)
    + Add two new stopping criteria, for relative (to `norm(b)`) and absolute residual norm [#577](https://github.com/ginkgo-project/ginkgo/pull/577)
    
    + Templatize all examples to simplify changing the precision [#513](https://github.com/ginkgo-project/ginkgo/pull/513)
    + Add a new adaptive precision block-Jacobi example [#507](https://github.com/ginkgo-project/ginkgo/pull/507)
    + Add a new IR example [#522](https://github.com/ginkgo-project/ginkgo/pull/522)
    + Add a new Mixed Precision Iterative Refinement example [#525](https://github.com/ginkgo-project/ginkgo/pull/525)
    + Add a new example on iterative trisolves in ILU preconditioning [#526](https://github.com/ginkgo-project/ginkgo/pull/526), [#536](https://github.com/ginkgo-project/ginkgo/pull/536), [#550](https://github.com/ginkgo-project/ginkgo/pull/550)
    
    + Auto-detect compilation settings based on environment [#435](https://github.com/ginkgo-project/ginkgo/pull/435), [#537](https://github.com/ginkgo-project/ginkgo/pull/537)
    + Add SONAME to shared libraries [#524](https://github.com/ginkgo-project/ginkgo/pull/524)
    + Add clang-cuda support [#543](https://github.com/ginkgo-project/ginkgo/pull/543)
    
    + Add sorting, searching and merging kernels for GPUs [#403](https://github.com/ginkgo-project/ginkgo/pull/403), [#428](https://github.com/ginkgo-project/ginkgo/pull/428), [#417](https://github.com/ginkgo-project/ginkgo/pull/417), [#455](https://github.com/ginkgo-project/ginkgo/pull/455)
    + Add `gko::as` support for smart pointers [#493](https://github.com/ginkgo-project/ginkgo/pull/493)
    + Add setters and getters for criterion factories [#527](https://github.com/ginkgo-project/ginkgo/pull/527)
    + Add a new method to check whether a solver uses `x` as an initial guess [#531](https://github.com/ginkgo-project/ginkgo/pull/531)
    + Add contribution guidelines [#549](https://github.com/ginkgo-project/ginkgo/pull/549)
    
    + Improve the classical CSR strategy's performance [#401](https://github.com/ginkgo-project/ginkgo/pull/401)
    + Improve the CSR automatical strategy [#407](https://github.com/ginkgo-project/ginkgo/pull/407), [#559](https://github.com/ginkgo-project/ginkgo/pull/559)
    + Memory, speed improvements to the ELL kernel [#411](https://github.com/ginkgo-project/ginkgo/pull/411)
    + Multiple improvements and fixes to ParILU [#419](https://github.com/ginkgo-project/ginkgo/pull/419), [#427](https://github.com/ginkgo-project/ginkgo/pull/427), [#429](https://github.com/ginkgo-project/ginkgo/pull/429), [#456](https://github.com/ginkgo-project/ginkgo/pull/456), [#544](https://github.com/ginkgo-project/ginkgo/pull/544)
    + Fix multiple issues with GMRES [#481](https://github.com/ginkgo-project/ginkgo/pull/481), [#523](https://github.com/ginkgo-project/ginkgo/pull/523), [#575](https://github.com/ginkgo-project/ginkgo/pull/575)
    + Optimize OpenMP matrix conversions [#505](https://github.com/ginkgo-project/ginkgo/pull/505)
    + Ensure the linearity of the ILU preconditioner [#506](https://github.com/ginkgo-project/ginkgo/pull/506)
    + Fix IR's use of the advanced apply [#522](https://github.com/ginkgo-project/ginkgo/pull/522)
    + Fix empty matrices conversions and add tests [#560](https://github.com/ginkgo-project/ginkgo/pull/560)
    
    + Fix complex number support in our math header [#410](https://github.com/ginkgo-project/ginkgo/pull/410)
    + Fix CUDA compatibility of the main ginkgo header [#450](https://github.com/ginkgo-project/ginkgo/pull/450)
    + Fix isfinite issues [#465](https://github.com/ginkgo-project/ginkgo/pull/465)
    + Fix the Array::view memory leak and the array/view copy/move [#485](https://github.com/ginkgo-project/ginkgo/pull/485)
    + Fix typos preventing use of some interface functions [#496](https://github.com/ginkgo-project/ginkgo/pull/496)
    + Fix the `gko::dim` to abide to the C++ standard [#498](https://github.com/ginkgo-project/ginkgo/pull/498)
    + Simplify the executor copy interface [#516](https://github.com/ginkgo-project/ginkgo/pull/516)
    + Optimize intermediate storage for Composition [#540](https://github.com/ginkgo-project/ginkgo/pull/540)
    + Provide an initial guess for relevant Compositions [#561](https://github.com/ginkgo-project/ginkgo/pull/561)
    + Better management of nullptr as criterion [#562](https://github.com/ginkgo-project/ginkgo/pull/562)
    + Fix the norm calculations for complex support [#564](https://github.com/ginkgo-project/ginkgo/pull/564)
    
    + Use the return value of the atomic operations in our wrappers [#405](https://github.com/ginkgo-project/ginkgo/pull/405)
    + Improve the portability of warp lane masks [#422](https://github.com/ginkgo-project/ginkgo/pull/422)
    + Extract thread ID computation into a separate function [#464](https://github.com/ginkgo-project/ginkgo/pull/464)
    + Reorder kernel parameters for consistency [#474](https://github.com/ginkgo-project/ginkgo/pull/474)
    + Fix the use of `pragma unroll` in HIP [#492](https://github.com/ginkgo-project/ginkgo/pull/492)
    
    + Fix the Ginkgo CMake installation files [#414](https://github.com/ginkgo-project/ginkgo/pull/414), [#553](https://github.com/ginkgo-project/ginkgo/pull/553)
    + Fix the Windows compilation [#415](https://github.com/ginkgo-project/ginkgo/pull/415)
    + Always use demangled types in error messages [#434](https://github.com/ginkgo-project/ginkgo/pull/434), [#486](https://github.com/ginkgo-project/ginkgo/pull/486)
    + Add CUDA header dependency to appropriate tests [#452](https://github.com/ginkgo-project/ginkgo/pull/452)
    + Fix several sonarqube or compilation warnings [#453](https://github.com/ginkgo-project/ginkgo/pull/453), [#463](https://github.com/ginkgo-project/ginkgo/pull/463), [#532](https://github.com/ginkgo-project/ginkgo/pull/532), [#569](https://github.com/ginkgo-project/ginkgo/pull/569)
    + Add shuffle tests [#460](https://github.com/ginkgo-project/ginkgo/pull/460)
    + Fix MSVC C2398 error [#490](https://github.com/ginkgo-project/ginkgo/pull/490)
    + Fix missing interface tests in test install [#558](https://github.com/ginkgo-project/ginkgo/pull/558)
    
    + Add better norm support in the benchmarks [#377](https://github.com/ginkgo-project/ginkgo/pull/377)
    + Add CUDA 10.1 generic SpMV support in benchmarks [#468](https://github.com/ginkgo-project/ginkgo/pull/468), [#473](https://github.com/ginkgo-project/ginkgo/pull/473)
    + Add sparse library ILU in benchmarks [#487](https://github.com/ginkgo-project/ginkgo/pull/487)
    + Add overhead benchmarking capacities [#501](https://github.com/ginkgo-project/ginkgo/pull/501)
    + Allow benchmarking from a matrix list file [#503](https://github.com/ginkgo-project/ginkgo/pull/503)
    + Fix benchmarking issue with JSON and non-finite numbers [#514](https://github.com/ginkgo-project/ginkgo/pull/514)
    + Fix benchmark logger crashers with OpenMP [#565](https://github.com/ginkgo-project/ginkgo/pull/565)
    
    + Improvements to the CI setup with HIP compilation [#421](https://github.com/ginkgo-project/ginkgo/pull/421), [#466](https://github.com/ginkgo-project/ginkgo/pull/466)
    + Add MacOSX CI support [#470](https://github.com/ginkgo-project/ginkgo/pull/470), [#488](https://github.com/ginkgo-project/ginkgo/pull/488)
    + Add Windows CI support [#471](https://github.com/ginkgo-project/ginkgo/pull/471), [#488](https://github.com/ginkgo-project/ginkgo/pull/488), [#510](https://github.com/ginkgo-project/ginkgo/pull/510), [#566](https://github.com/ginkgo-project/ginkgo/pull/566)
    + Use sanitizers instead of valgrind [#476](https://github.com/ginkgo-project/ginkgo/pull/476)
    + Add automatic container generation and update facilities [#499](https://github.com/ginkgo-project/ginkgo/pull/499)
    + Fix the CI parallelism settings [#517](https://github.com/ginkgo-project/ginkgo/pull/517), [#538](https://github.com/ginkgo-project/ginkgo/pull/538), [#539](https://github.com/ginkgo-project/ginkgo/pull/539)
    + Make the codecov patch check informational [#519](https://github.com/ginkgo-project/ginkgo/pull/519)
    + Add support for LLVM sanitizers with improved thread sanitizer support [#578](https://github.com/ginkgo-project/ginkgo/pull/578)
    
    + Add an assertion for sparsity pattern equality [#416](https://github.com/ginkgo-project/ginkgo/pull/416)
    + Add core and reference multiprecision tests support [#448](https://github.com/ginkgo-project/ginkgo/pull/448)
    + Speed up GPU tests by avoiding device reset [#467](https://github.com/ginkgo-project/ginkgo/pull/467)
    + Change test matrix location string [#494](https://github.com/ginkgo-project/ginkgo/pull/494)
    
    + Add Ginkgo badges from our tools [#413](https://github.com/ginkgo-project/ginkgo/pull/413)
    + Update the `create_new_algorithm.sh` script [#420](https://github.com/ginkgo-project/ginkgo/pull/420)
    + Bump copyright and improve license management [#436](https://github.com/ginkgo-project/ginkgo/pull/436), [#433](https://github.com/ginkgo-project/ginkgo/pull/433)
    + Set clang-format minimum requirement [#441](https://github.com/ginkgo-project/ginkgo/pull/441), [#484](https://github.com/ginkgo-project/ginkgo/pull/484)
    + Update git-cmake-format [#446](https://github.com/ginkgo-project/ginkgo/pull/446), [#484](https://github.com/ginkgo-project/ginkgo/pull/484)
    + Disable the development tools by default [#442](https://github.com/ginkgo-project/ginkgo/pull/442)
    + Add a script for automatic header formatting [#447](https://github.com/ginkgo-project/ginkgo/pull/447)
    + Add GDB pretty printer for `gko::Array` [#509](https://github.com/ginkgo-project/ginkgo/pull/509)
    + Improve compilation speed [#533](https://github.com/ginkgo-project/ginkgo/pull/533)
    + Add editorconfig support [#546](https://github.com/ginkgo-project/ginkgo/pull/546)
    + Add a compile-time check for header self-sufficiency [#552](https://github.com/ginkgo-project/ginkgo/pull/552)
    
  • v1.1.1
    08d2c520 · Minor Release v1.1.1 ·
    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 ([#406](https://github.com/ginkgo-project/ginkgo/pull/406)),
    + Fix some documentation issues ([#406](https://github.com/ginkgo-project/ginkgo/pull/406)),
    + Fix multiple code issues reported by sonarqube ([#406](https://github.com/ginkgo-project/ginkgo/pull/406)),
    + Update the git-cmake-format repository ([#399](https://github.com/ginkgo-project/ginkgo/pull/399)),
    + Improve the global update header script ([#390](https://github.com/ginkgo-project/ginkgo/pull/390)),
    + Fix broken bounds checks ([#388](https://github.com/ginkgo-project/ginkgo/pull/388)),
    + Fix CSR strategies and improve performance ([#379](https://github.com/ginkgo-project/ginkgo/pull/379)),
    + Fix a small typo in the stencil examples ([#381](https://github.com/ginkgo-project/ginkgo/pull/381)),
    + Fix ELL error on small matrices ([#375](https://github.com/ginkgo-project/ginkgo/pull/375)),
    + Fix SellP read function ([#374](https://github.com/ginkgo-project/ginkgo/pull/374)),
    + Add factorization support in `create_new_algorithm.sh`  ([#371](https://github.com/ginkgo-project/ginkgo/pull/371))
    
  • v1.1.0
    b9bec822 · Merge Release v1.1.0 ·
    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 ([#327](https://github.com/ginkgo-project/ginkgo/issues/327), [#336](https://github.com/ginkgo-project/ginkgo/issues/336), [#341](https://github.com/ginkgo-project/ginkgo/issues/341), [#342](https://github.com/ginkgo-project/ginkgo/issues/342))
    + New factorization support in Ginkgo, and addition of the ParILU
      algorithm ([#305](https://github.com/ginkgo-project/ginkgo/issues/305), [#315](https://github.com/ginkgo-project/ginkgo/issues/315), [#319](https://github.com/ginkgo-project/ginkgo/issues/319), [#324](https://github.com/ginkgo-project/ginkgo/issues/324))
    + New ILU preconditioner ([#348](https://github.com/ginkgo-project/ginkgo/issues/348), [#353](https://github.com/ginkgo-project/ginkgo/issues/353))
    + Windows MinGW and Cygwin support ([#347](https://github.com/ginkgo-project/ginkgo/issues/347))
    + Windows Visual Studio support ([#351](https://github.com/ginkgo-project/ginkgo/issues/351))
    + New example showing how to use ParILU as a preconditioner ([#358](https://github.com/ginkgo-project/ginkgo/issues/358))
    + New example on using loggers for debugging ([#360](https://github.com/ginkgo-project/ginkgo/issues/360))
    + Add two new 9pt and 27pt stencil examples ([#300](https://github.com/ginkgo-project/ginkgo/issues/300), [#306](https://github.com/ginkgo-project/ginkgo/issues/306))
    + Allow benchmarking CuSPARSE spmv formats through Ginkgo's benchmarks ([#303](https://github.com/ginkgo-project/ginkgo/issues/303))
    + New benchmark for sparse matrix format conversions ([#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 ([#302](https://github.com/ginkgo-project/ginkgo/issues/302), [#310](https://github.com/ginkgo-project/ginkgo/issues/310))
    + Support for sorting rows in the CSR format by column idices ([#322](https://github.com/ginkgo-project/ginkgo/issues/322))
    + Addition of a CUDA COO SpMM kernel for improved performance ([#345](https://github.com/ginkgo-project/ginkgo/issues/345))
    + Addition of a LinOp to handle perturbations of the form (identity + scalar *
      basis * projector) ([#334](https://github.com/ginkgo-project/ginkgo/issues/334))
    + New sparsity matrix representation format with Reference and OpenMP
      kernels ([#349](https://github.com/ginkgo-project/ginkgo/issues/349), [#350](https://github.com/ginkgo-project/ginkgo/issues/350))
    
    Fixes:
    + Accelerate GMRES solver for CUDA executor ([#363](https://github.com/ginkgo-project/ginkgo/issues/363))
    + Fix BiCGSTAB solver convergence ([#359](https://github.com/ginkgo-project/ginkgo/issues/359))
    + Fix CGS logging by reporting the residual for every sub iteration ([#328](https://github.com/ginkgo-project/ginkgo/issues/328))
    + Fix CSR,Dense->Sellp conversion's memory access violation ([#295](https://github.com/ginkgo-project/ginkgo/issues/295))
    + Accelerate CSR->Ell,Hybrid conversions on CUDA ([#313](https://github.com/ginkgo-project/ginkgo/issues/313), [#318](https://github.com/ginkgo-project/ginkgo/issues/318))
    + Fixed slowdown of COO SpMV on OpenMP ([#340](https://github.com/ginkgo-project/ginkgo/issues/340))
    + Fix gcc 6.4.0 internal compiler error ([#316](https://github.com/ginkgo-project/ginkgo/issues/316))
    + Fix compilation issue on Apple clang++ 10 ([#322](https://github.com/ginkgo-project/ginkgo/issues/322))
    + Make Ginkgo able to compile on Intel 2017 and above ([#337](https://github.com/ginkgo-project/ginkgo/issues/337))
    + Make the benchmarks spmv/solver use the same matrix formats ([#366](https://github.com/ginkgo-project/ginkgo/issues/366))
    + Fix self-written isfinite function ([#348](https://github.com/ginkgo-project/ginkgo/issues/348))
    + Fix Jacobi issues shown by cuda-memcheck
    
    Tools and ecosystem:
    + Multiple improvements to the CI system and tools ([#296](https://github.com/ginkgo-project/ginkgo/issues/296), [#311](https://github.com/ginkgo-project/ginkgo/issues/311), [#365](https://github.com/ginkgo-project/ginkgo/issues/365))
    + Multiple improvements to the Ginkgo containers ([#328](https://github.com/ginkgo-project/ginkgo/issues/328), [#361](https://github.com/ginkgo-project/ginkgo/issues/361))
    + Add sonarqube analysis to Ginkgo ([#304](https://github.com/ginkgo-project/ginkgo/issues/304), [#308](https://github.com/ginkgo-project/ginkgo/issues/308), [#309](https://github.com/ginkgo-project/ginkgo/issues/309))
    + Add clang-tidy and iwyu support to Ginkgo ([#298](https://github.com/ginkgo-project/ginkgo/issues/298))
    + Improve Ginkgo's support of xSDK M12 policy by adding the `TPL_` arguments
      to CMake ([#300](https://github.com/ginkgo-project/ginkgo/issues/300))
    + Add support for the xSDK R7 policy ([#325](https://github.com/ginkgo-project/ginkgo/issues/325))
    + Fix examples in html documentation ([#367](https://github.com/ginkgo-project/ginkgo/issues/367))
  • v1.0.0
    45244641 · Merge Release 1.0.0 ·
    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