• Stars
    star
    124
  • Rank 288,154 (Top 6 %)
  • Language
    C++
  • License
    Other
  • Created about 5 years ago
  • Updated 29 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reference Implementation for stdBLAS

P1673 reference implementation

This is a reference implementation of P1673, "A free function linear algebra interface based on the BLAS." You can find the latest submitted revision of P1673 at this URL.

Requirements

  • CMake >= 3.17 (earlier versions may work, but are not tested)
  • C++ build environment that supports C++17 or greater

Tested compilers

We run github's automated tests on every pull request. Automated tests use "ubuntu-latest", which presumably defaults to a fairly new GCC. Other compilers, including MSVC 2019, have been tested in the past.

Brief build instructions

  1. Download and install googletest (GTest)
  2. Download and install mdspan:
  3. Run CMake, pointing it to your googletest and mdspan install locations
    • If you want to build tests, set LINALG_ENABLE_TESTS=ON
    • If you want to build examples, set LINALG_ENABLE_EXAMPLES=ON
    • If you have a BLAS installation, set LINALG_ENABLE_BLAS=ON. BLAS support is currently experimental.
  4. Build and install as usual
  5. If you enabled tests, use "ctest" to run them

More detailed MSVC build instructions

Be sure to build mdspan and googletest in the Release configuration before installing.

The following CMake options are known to work:

  • mdspan_DIR=${MDSPAN_INSTALL_DIR}\lib\cmake\mdspan (where MDSPAN_INSTALL_DIR is the path to your mdspan installation)
  • GTEST_INCLUDE_DIR=${GTEST_INSTALL_DIR}\include (where GTEST_INSTALL_DIR is the path to your googletest installation)
  • GTEST_LIBRARY=${GTEST_INSTALL_DIR}\lib\gtest.lib
  • GTEST_MAIN_LIBRARY=${GTEST_INSTALL_DIR}\lib\gtest_main.lib

When building tests, for all CMAKE_CXX_FLAGS_* options, you might need to change "/MD" to "/MT", depending on how googletest was built.

More Repositories

1

kokkos

Kokkos C++ Performance Portability Programming Ecosystem: The Programming Model - Parallel Execution and Memory Abstraction
C++
1,977
star
2

mdspan

Reference implementation of mdspan targeting C++23
C++
295
star
3

kokkos-kernels

Kokkos C++ Performance Portability Programming Ecosystem: Math Kernels - Provides BLAS, Sparse BLAS and Graph Kernels
C++
294
star
4

kokkos-tutorials

Tutorials for the Kokkos C++ Performance Portability Programming EcoSystem
C++
240
star
5

kokkos-tools

Kokkos C++ Performance Portability Programming EcoSystem: Profiling and Debugging Tools
C++
71
star
6

pykokkos

Provides Kokkos performance portable parallel programming in Python.
Python
65
star
7

kokkos-remote-spaces

Kokkos Remote Spaces implements distributed Kokkos Views and related APIs for distributed parallel programming.
C++
42
star
8

array_ref

Polymorphic multidimensional array view
C++
35
star
9

pykokkos-base

Python bindings for data interoperability with Kokkos (View, DynRankView)
C++
24
star
10

kokkos-fortran-interop

The Kokkos Fortran Interop repository contains tools and interfaces which help interactions between Fortran portions of an applications and C++ portions using Kokkos.
Fortran
24
star
11

kokkos-fft

A shared-memory FFT for the Kokkos ecosystem
C++
21
star
12

simd-math

Library for length agnostic SIMD intrinsic support and the corresponding math operations
C++
20
star
13

kokkos-comm

Experimental MPI Wrapper for Kokkos
C++
15
star
14

mdarray

C++
10
star
15

kokkos-miniapps

Mini-applications that exclusively use the Kokkos programming model
C++
10
star
16

ISO-CPP-Papers

HTML
8
star
17

nvcc_wrapper

Wrapper shell script for NVIDIA nvcc to better conform to host compiler command line arguments
Shell
7
star
18

hpcbind

Binding utilities used for MPI, OpenMP and GPUs
Shell
6
star
19

kokkos-resilience

Resilience Extensions for Kokkos
C++
4
star
20

kokkos-core-wiki

3
star
21

kokkos-benchmark-results

3
star
22

kokkos.github.io

Documentation Repo
HTML
1
star
23

kokkos-openmptarget-examples

This is a repository for sharing OpenMP 5 target usage examples and reproducers
C++
1
star