All Projects → joelberkeley → spidr

joelberkeley / spidr

Licence: Apache-2.0 license
Marrying research in probabilistic modelling, language theory and hardware accelerators.

Programming Languages

Idris
72 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Starlark
911 projects
shell
77523 projects

spidr

Note: spidr is in early development. See here for a list of notable limitations.

For installation, see the instructions. We use semantic versioning.

spidr has an incomplete online API reference, incomplete as the documentation builder is itself a work in progress: it both omits items, and renders items incorrectly. See the source code for the complete API. spidr also has tutorials, which are literate files and can be executed like any other source file.

Please use spidr responsibly. We ask that you ensure any benefits you gain from this are used to help, not hurt.

Motivation

With spidr, we explore what is possible when we bring some of the latest developments in programming language theory and hardware acceleration to probabilistic modelling. We hope to help developers find new ways to write and verify robust, performant and practical machine learning utilities, libraries and frameworks; allow machine learning researchers to leverage software design to find new research avenues with tools that are easy to compose, modify and extend; and allow those new to machine learning to learn about common or useful algorithms. To these ends, we aim to make spidr

  • robust by leveraging the dependent types and theorem proving offered by Idris
  • performant by using XLA for efficient graph compilation for the GPU, TPU and other hardware
  • composable via a purely functional API
  • practical with lightweight and intuitive APIs
  • informative with clear and extensive documentation

This is a tall order, so to keep the workload manageable we may omit conceptually similar algorithms where they don't contribute new insights in design or machine learning computation. This emphasis on design over completeness is spidr's distinctive feature.

Acknowledgements

I'd like to thank the Idris community for their frequent guidance and Idris itself, the Numerical Elixir team for their XLA binaries, Secondmind colleagues for discussions around machine learning design, friends and family for their support, Google for XLA, and Github for hosting. There are many more I've not mentioned.

Contact

To ask for new features or to report bugs, make a new GitHub issue. For any other questions or comments, message @joelb on the Idris community discord.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].