If you found the title interesting (hence you are reading this) you most likely know what a convolution is. It’s a crucial computation piece that you want to ensure is efficiently implemented. For this reason, there are plenty of libraries, implementations, and even hardware extensions designed to enhance convolution speed. But have you ever considered just how much faster it can be? How slow is the naïve implementation? And how much can compiler optimization aid? Here, I attempt to showcase speed comparisons on the de facto standard computer of a hardware enthusiast: the Raspberry Pi. In this post, I test...
Ah, the wondrous invention of the wheel, undoubtedly one of humanity’s greatest feats. Its origins trace back to around 3500 BC, though I must admit, I’m quite curious who came up such a precise estimate. Yet, despite its brilliance, there’s a rather unfortunate truth we come to realize early on in life – most wheels require a fair bit of pushing to prove their usefulness. I remember this revelation dawning upon me in my early years, perhaps around the tender age of two or three. Or perhaps I don’t really remember. So, on a not so eventful evening, I decided...
Eye tracking and analysis of the human eye is one of the perspective technologies. It can substantially improve our interaction with our smartphones. If you are reading this you probably have your opinion already. The real question is whether the precision is sufficient – thus how precise it can actually get. Assumptions Eye Before we can reason about the precision, let’s first establish some facts/assumptions that we will consider. Eye is a strange natural camera, that has evolved somewhere around 500 million years ago. By analyzing the eye we understand detecting the different elements, the most important is the iris....
There are many reasons why to write your algorithm in assembler. You can have all the optimizations firmly in hand. However, it comes at costs – you need to know a lot about the hardware running your program, your program will be highly non-portable, non readable and you will spend ages on writing it. Oh, did I mention that debugging is a hell? Preparation So, to start using assembly in Android Studio, you need to install Android NDK. You can install it manually (and reference the installation) or from the Android Studio itself ( File > Settings > Appearence & Behaviour...