Skip to content
Field G. Van Zee edited this page Jul 13, 2018 · 24 revisions

Welcome to the blis wiki!

The following documents are present within the docs directory of the BLIS source distribution. We link to them here for your markdown-rendering convenience.

Documents for everyone:

  • Build System. This document covers the basics of configuring and building BLIS libraries. Other topics such as installing and linking against BLIS, running basic checks/tests, and uninstalling are also covered.
  • Testsuite. This document describes how to run BLIS's highly parameterized and configurable test suite, walks through all of its options (general and operation-specific), and how to interpret the results. A brief explanation of the BLIS's netlib BLAS test drivers is also included.
  • BLIS Typed API Reference. Here we document the so-called "typed" (or BLAS-like) API. This is the API that many users who are already familiar with the BLAS will likely want to use. The other main API in BLIS is the object API. You may find lots of example code for both the typed and object APIs in the examples directory included in the BLIS source distribution.
  • BLIS Object API Reference. Here we document the object API. This is API abstracts away properties of vectors and matrices within obj_t structs that can be queried with accessor functions. Thanks to this abstraction, many developers and experts prefer this API over the typed API. You will find lots of example code for both the typed and object APIs in the examples directory included in the BLIS source distribution.
  • Hardware Support. This document maintains a table of supported microarchitectures, which includes the corresponding sub-configurations as well as the specific kernels supported for each type of hardware.
  • Multithreading. This document describes how to use the multithreading features of BLIS, the methods of requesting parallelism, and the underlying way that BLIS expresses parallelism within level-3 operations.
  • Release Notes. This document tracks a summary of changes included with each new version of BLIS, along with contributor credits for key features.
  • Frequently Asked Questions. If you have general questions about BLIS, please read this FAQ. If you can't find the answer to your question, please feel free to join the blis-devel mailing list and post a question. We also have a blis-discuss mailing list that anyone can post to (even without joining).

Documents for github contributors:

  • Contributing bug reports, feature requests, PRs, etc. Interested in contributing to BLIS? Please read this document before getting started. It provides a general overview of how best to report bugs, propose new features, and offer code patches.
  • Coding Conventions. If you are interested or planning on contributing code to BLIS, please read this document so that you can format your code in accordance with BLIS's standards. (We won't turn away code contributions that are not 100% in compliance with these standards, but following these guidelines as much as possible will be sincerely appreciated by the project maintainers.)

Documents for developers:

  • Kernels Guide. If you would like to learn more about the types of kernels that BLIS exposes, their semantics, the operations that each kernel accelerates, and various implementation issues, please read this guide. (It currently focuses on level-3 microkernels, though in the future the details of level-1v and -1f kernels will be filled in. In the meantime, if you would like to learn more about level-1v/-1f kernels, please find and study an existing implementation in the kernels directory).
  • Configuration Guide. If you would like to learn how to add new sub-configurations or configuration families, or are simply interested in learning how BLIS organizes its configurations and kernel sets, please read this thorough walkthrough of the configuration system. (NOTE: "configuration" in this context is not the same as the options given to the configure script, though the configuration is indeed specified/selected at the time that configure is run.
Clone this wiki locally