Other Resources
==============
Software Defined Radio Resources
-------------------------------
`GNU Radio `_ is a free & open-source software development toolkit that provides signal processing blocks to implement software radios. It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment.
`Liquid DSP `_ is a free and open-source signal processing library for software-defined radios written in C. Its purpose is to provide a set of extensible DSP modules that do not rely on external dependencies or cumbersome frameworks.
General Programming Resources
---------------------------
C/C++
~~~~~
`C/C++ online reference `_ for common classes, examples, etc.
`Boost C++ template library `_. Like C++'s Standard Template Library on steroids. Sometimes helpful, sometimes painful.
Python
~~~~~~
`Python online documentation `_
`NumPy `_ and `SciPy `_ libraries for doing scientific computing in Python.
Xilinx FPGA Programming
~~~~~~~~~~~~~~~~~~~~~
The `Xilinx FPGA `_ resources on each USRP X310 that are part of the Standard Radio Node are available to users to program. Xilinx provides many different tool chains for programming the XC7K410T FPGA. Perhaps the most comprehensive tool is the `Xilinx Vivado `_ Design Suite.
CUDA
~~~~
`CUDA `_ is a parallel computing platform and application programming interface (API) model created by Nvidia. It can be used to leverage the highly parallel architecture of GPUs for computation. `Current Documentation `_ links to the developer documentation for NVIDIA CUDA Toolkit 8.0.44
Machine Learning & AI Resources
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`Theano `_ is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently.
`Google's TensorFlow `_ is an open source software library for numerical computation using data flow graphs.
`Keras `_ is a high-level neural networks library, written in Python and capable of running on top of either `TensorFlow `_ or `Theano `_.
`Gymnasium `_ is a toolkit for developing and comparing reinforcement learning algorithms. It supports teaching agents everything from walking to playing games like Pong or Go.
`scikit-learn `_ is an opensource machine learning toolbox for Python
Hardware Resources
----------------
USRP Hardware
~~~~~~~~~~~
Each Colosseum Standard Radio Node has an `Ettus Research `_ X310 software defined radio with a custom low power UBX daughter card. The easiest way to procure this exact configuration is to contact Ettus Research directly.
SRN Compute Configuration
~~~~~~~~~~~~~~~~~~~~~~~
Colosseum SRN computer specifications can be found here.
Cloud Resources
-------------
`Amazon Web Services `_ offers cloud storage and computing. Including GPU AWS instances that are particularly well suited to crunching data for machine learning.
Amazon has a `grants program `_ for researchers driving innovation with cloud computing.
`Google Cloud `_ offers cloud computing services as well. Perhaps in the near future this will include machines with the `TPU processor `_?
`Microsoft Azure `_ also offers a cloud computing services.