All Projects → jakobnissen → Hardware_introduction

jakobnissen / Hardware_introduction

What scientific programmers must know about CPUs and RAM to write fast code.

Projects that are alternatives of or similar to Hardware introduction

Elementsofdatascience
An introduction to data science in Python, for people with no programming experience.
Stars: ✭ 205 (-1.91%)
Mutual labels:  jupyter-notebook
Eli5
A library for debugging/inspecting machine learning classifiers and explaining their predictions
Stars: ✭ 2,477 (+1085.17%)
Mutual labels:  jupyter-notebook
Visualsearch mxnet
Visual Search using Apache MXNet and gluon
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook
Portraitnet
Code for the paper "PortraitNet: Real-time portrait segmentation network for mobile device" @ CAD&Graphics2019
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Orn
Oriented Response Networks, in CVPR 2017
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Covid19za
Coronavirus COVID-19 (2019-nCoV) Data Repository and Dashboard for South Africa
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook
Scihub
Source code and data analyses for the Sci-Hub Coverage Study
Stars: ✭ 205 (-1.91%)
Mutual labels:  jupyter-notebook
Windrose
A Python Matplotlib, Numpy library to manage wind data, draw windrose (also known as a polar rose plot), draw probability density function and fit Weibull distribution
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook
Gluon Api
A clear, concise, simple yet powerful and efficient API for deep learning.
Stars: ✭ 2,322 (+1011%)
Mutual labels:  jupyter-notebook
Dexplot
Simple plotting library that wraps Matplotlib and integrated with DataFrames
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook
Osumapper
An automatic beatmap generator using Tensorflow / Deep Learning.
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Lstm stock prediction
This is an LSTM stock prediction using Tensorflow with Keras on top.
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Neural differential equations
This is the code for "Neural DIfferential Equations" By Siraj Raval on Youtube
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Highres Net
Pytorch implementation of HighRes-net, a neural network for multi-frame super-resolution, trained and tested on the European Space Agency’s Kelvin competition.
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Workshop blog
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook
Blazeface Pytorch
The BlazeFace face detector model implemented in PyTorch
Stars: ✭ 203 (-2.87%)
Mutual labels:  jupyter-notebook
Flaml
A fast and lightweight AutoML library.
Stars: ✭ 205 (-1.91%)
Mutual labels:  jupyter-notebook
Python Bootcamp
Python Bootcamp docs and lectures (UC Berkeley)
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook
Dlsys Course.github.io
Deep learning system course
Stars: ✭ 207 (-0.96%)
Mutual labels:  jupyter-notebook
Graph Convolution Nlp
Graph Convolution Network for NLP
Stars: ✭ 208 (-0.48%)
Mutual labels:  jupyter-notebook

What scientists must know about hardware to write fast code

This blog post is hosted on the BioJulia website: https://biojulia.net/post/hardware/

This document is written as a Jupyter Notebook. (.ipynb format). If you can, I recommend running the code in Jupyter using an IJulia kernel so you can play around with it and learn. Alternatively, read it on BioJulia's website.

This notebook covers:

  • Why you must minimize disk access
  • What a CPU cache is, and how to use it effectively
  • Memory alignment
  • How to read assembly code and why you must do it
  • Why you should reduce allocations
  • SIMD vectorization
  • Struct of arrays vs array of structs
  • Special CPU instructions
  • Function inlining
  • Loop unrolling
  • Branch prediction
  • Multithreading
  • Why GPUs are fast at some things and slow at others

How to contribute

Pull requests (PRs) are welcome. Please only modify the .jl file in your PR. Unlike the .ipynb file, .jl files are plain text files and play much more nicely with git, making it easier to review your PR.

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].