Skip to content

Instantly share code, notes, and snippets.

View gist:b17ac84c1ef88b69deade029151303a0
FROM ubuntu:21.04
# We install some useful packages.
RUN apt-get update -qq
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata
RUN apt-get install -y vim clang-format sudo python3 wget cmake g++
RUN apt-get install -y git clang linux-tools-generic ninja-build lldb zip curl
RUN apt-get install -y firefox
RUN apt-get install -y python3-pip
RUN apt-get install -y libssl-dev
@nadavrot
nadavrot / gist:9a071a02ea20ab483158c443638dea7a
Last active Oct 7, 2021
A BCC/EBPF tool for detecting short-lived memory allocations
View gist:9a071a02ea20ab483158c443638dea7a
#!/usr/bin/python
from __future__ import print_function
from bcc import BPF
from bcc.utils import printb
from time import sleep
import sys
import pdb
if len(sys.argv) < 2:
@nadavrot
nadavrot / mymalloc.cc
Created Nov 29, 2020
A working malloc implementation in 250 LOC
View mymalloc.cc
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstdio>
#include <cstring>
#include <pthread.h>
#include <unistd.h>
namespace {
/// A Block is a header to a managed memory buffer. Blocks are arranged as
View gist:50e856b4711798a1c8bc6ecc061d77d0
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define BT_BUF_SIZE 100
@nadavrot
nadavrot / Matrix.md
Last active May 20, 2022
Efficient matrix multiplication
View Matrix.md

High-Performance Matrix Multiplication

This is a short post that explains how to write a high-performance matrix multiplication program on modern processors. In this tutorial I will use a single core of the Skylake-client CPU with AVX2, but the principles in this post also apply to other processors with different instruction sets (such as AVX512).

Intro

Matrix multiplication is a mathematical operation that defines the product of