What is JAXED? JAXED [JIT + AXED] is a security attack targeted reverse engineering DNNs (Deep Neural Network) architectures using JIT optimized GEMM libraries. Hyperparameters specify the model architecture of a DNN. E.g.:- number of layers, number of channels in a filter etc. In our latest work, we exploit a novel side channel exposed during … Continue reading Reverse Engineering DNNs with JIT GEMM Libraries
Category: architecture
Runtime Code Generation for Convolutions
Summary Our work MARLIN (Matrix Multiplication through Reduced Load Instructions), is now available on github. MARLIN is a runtime code generation library for convolution kernels. The paper won the first place in graduate student category in CGO 2021 (International Symposium on Code Generation and Optimization). Here are the links for the 10 minute presentation talk … Continue reading Runtime Code Generation for Convolutions
Assembly Function using AT&T Syntax
In this blog post, I will provide a detailed explanation about writing a C++ program with an external Assembly function written for the X86_64 architecture. There are three types of Assembly syntax in use today: Intel syntax, AT&T syntax and GAS syntax (General Assembly). Although Intel syntax is much easily readable and is widely used … Continue reading Assembly Function using AT&T Syntax
Blocked Matrix Multiplication
Having read this article, you will be able to implement blocked matrix multiplication and also to understand the number of memory accesses encountered in blocked matrix multiplication. In my next article, I will explain how these ideas can be extended to SIMD (Single Instruction Multiple Data) vector instructions. Why is Matrix Multiplication Important? Matrix multiplication … Continue reading Blocked Matrix Multiplication
Branch Listing Using Intel Pin Tool
Having read this blog post, you will be able to generate a branch listing using Intel Pin Tool. If you are interested in installing pin, please look at this article. Instead, if you are interested in the basics of writing a pin tool, I strongly suggest to refer to this article. Pin ships with many … Continue reading Branch Listing Using Intel Pin Tool
How to Write a Makefile with Ease
[wpdiscuz-feedback id="jd04i5a51j" question="New Feature: Inline Commenting! Please leave your thoughts." opened="0"][/wpdiscuz-feedback] Makefiles provide a way to organize build steps involved in C / C++ project compilation. This article explains how you can set up your own makefile for your C / C++ project. Why Use a Makefile? Usual compilation with g++ will involve a command … Continue reading How to Write a Makefile with Ease
Roll a Dice on a Quantum Computer
When I say "Roll a Dice on a Quantum Computer", technically there is no dice and it's not entirely a click bait. I'm going to simulate and verify the probability of an 8 sided fair dice. Why would I want to waste resources to do such a simple task. Well, a simple answer. There is … Continue reading Roll a Dice on a Quantum Computer