Skip to main content

Biography

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.

Interests

  • Computer Architecture
  • Machine Learning
  • Probabilistic Graphical Models

Education

  • 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

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.

CONTINUE READING

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.

CONTINUE READING

Some days ago, I became aware of a bug in GCC that has apparently existed since 2015. As this is a bug that deals with memory leaks, it is fairly serious. In this case, I really don’t want to re-post the entire content of the source, so I will only list my experiments with reproducing the bug once I became aware of it. C++ assumes that if a constructor fails, then no memory is allocated for the object at all.

CONTINUE READING

Mark Buckler and I use Docker a lot. Sometimes, we need X11 forwarding to work over SSH. Here’s a summary of the steps involved in case you’re curious.

CONTINUE READING

With the <random> header in C++11 onwards, there really is no reason to use std::rand() to generate random numbers. In fact, using std::rand() could be really harmful.

CONTINUE READING

Projects

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

EmoDetect

Emotion detection from images

Active noise-cancelling headphones

Low-cost analogue active noise cancelling headphones

CarDetect

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

Teaching

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)

Contact

  • @skandhurkat on Keybase.
  • 471C Rhodes Hall