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

C++ Concepts: A World Without Unchecked Generics

C++ concepts is a revolutionary idea aimed at building better and safer abstractions at the code level. Generics in C++ allows to express an abstract operation (maybe an algorithm) to different types (classes). Templates allowed abstraction of operations such as sort which can be used to sort a vector, an array or any object with … Continue reading C++ Concepts: A World Without Unchecked Generics

C++ Logging Module Designed for Research : rlog

screenshot shows a demonstration of the logs generated through rlog CHECK OUT ON GITHUB Why Should Researchers use C++ Logging? Most research and development occur in a haphazard manner and not investing time early on to adopt good development practices can increase the difficulty in extending research projects. Having a good C++ logging framework can … Continue reading C++ Logging Module Designed for Research : rlog

Why Researchers Should Use C++ Unit Testing

In this post, I will explain how to use GTest (Google C++ Testing Framework) configured with CMake to handle C++ unit testing. Unit testing ensures you the correctness of your code especially when you modify it to incorporate optimizations / special conditions.Purpose Statement Often in academia and research, people tend to think that investing time … Continue reading Why Researchers Should Use C++ Unit Testing

Hacking DNN Architectures in Cloud Environments

Deep Neural Networks (DNN) are increasingly being deployed in commercial cloud environments. However, in shared environments your intellectual property might not be safe as you once thought. In fact, you might just have allowed your competitor to reverse engineer your architecture. In this post, I will explain how an adversary can use the cache hierarchy … Continue reading Hacking DNN Architectures in Cloud Environments