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

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.


I’ve seen a lot of people (I’m looking at you Daniel Lemire) praise newer languages like Go, which makes me sad as a C++ programmer. Well, that’s until I realise that most of the features touted could be easily incorporated in C++ with just a bit of elbow grease. In this post, I’ll show how to add an automated testing system using CTest.


Vim is my favourite text editor, because it is minimalist while also being insanely configurable. While I may describe my ideal Vim setup sometime in the future, I do want to share some tips and tricks that make Vim so damn efficient for certain tasks. Today, I shall focus on macros. Here’s the key idea to keep in mind when discussing about Vim. Vim is not just an editor, it is a text manipulation program.



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