Skip to main content


I am a PhD candidate in the Computer Systems Lab at Cornell University. I’m advised by Dr. José F. Martínez

I’m interested in smart ways of implementing algorithms in hardware, and re-thinking the hardware-software interface. Presently, I’m working on developing hardware for inference in probabilistic graphical models.

Before joining Cornell, I completed my Bachelor of Technology in Electrical Engineering (with a minor in Physics) at the Indian Institute of Technology, Bombay. My thesis work then related to scheduling users in OFDMA networks.


  • Computer Architecture
  • Machine Learning
  • Probabilistic Graphical Models


  • MS in Electrical and Computer Engineering, 2016

    Cornell University

  • BTech in Electrical Engineering, 2012

    Indian Institute of Technology, Bombay

Recent Publications

  • , , , , , Fast hierarchical implementation of sequential tree-reweighted belief propagation for probabilistic inference, in Field Programmable Logic and Applications.

    Details DOI PDF

  • , , , , , , , , GraphGen: An FPGA framework for vertex-centric graph computation, in Field-programmable custom computing machines.

    Details DOI PDF

Recent Posts

More Posts

CMake is cross-platform build and configuration system for C and C++ code, which also happens to be my favourite build system. In this post, I’ll present a quick tutorial on getting started with CMake. But before we do, let’s start with an example of why other build systems such as Makefiles don’t necessarily cut it. Actually, Makefiles work fairly well, but writing Makefiles by hand is generally a pain in the neck.


I’ve seen way too many projects that supply a makefile that requires the user to run make clean and make every single time they make a change to some file. This is annoying and error prone, and the good news is that it can be easily solved with this one simple trick. Use a good build-generation system like CMake instead.


Today, my website displays a banner to join the fight for an open internet. My message to the FCC follows.


Four pictures of the third of July fireworks in Ithaca to celebrate the fourth of July.


I’m back from the 44th International Symposium on Computer Architecture, and this is a perfect time for me to summarise my thoughts on the conference. The conference was in Toronto, which was a refreshing change for me to see correct spelling and sensible units for a change. Beyond that, the conference had a lot of interesting developments, and some that were not quite as interesting. First, let me address the 15-month elephant in the room.



LDPC decoding using residual BP

A study of the effects of residual belief propagation as applied to LDPC decoding

High-level synthesis of a belief propagation accelerator

Using Vivado-HLS to rapidly prototype and test accelerators


Emotion detection from images

Active noise-cancelling headphones

Low-cost analogue active noise cancelling headphones


Car make and model detection

Text-independent speaker verification

Artificial neural networks to identify users from speech

Text-dependent speaker verification

Matching spoken text to identify users on an Atmel AVR microcontroller


I have been a teaching assistant for the following courses:

  • ECE2300: Digital logic and computer organization (Fall 2014)
  • ECE3140: Embedded systems (Spring 2015)
  • ECE3140: Embedded systems (Spring 2016)


  • @skandhurkat on Keybase.
  • 471C Rhodes Hall