Benchmarking CUDA vs Eigen

    Here are some benchmarking notes on CUDA vs the Eigen Library on the two most common operations in my research. Those two operations are the SAXPY operation, which is Y = a * X + Y where X, Y are vectors and a is a scalar. The other main operation is a dot product, which is sum(X * Y) where X and Y are arrays using element-wise array multiplication.

    Read More...

    C Interactive Interpreter Running

    It’s no fun just talking about something you did, especially a web application. Finally after playing around with Heroku buildpacks and EC2 I finally got my C Interactive Interpreter running on EC2! You can see it here. It doesn’t support C fully yet. Arrays, functions, and structs along with arithmetic are supported, but there’s no console yet (obviously) and there’s no pointers yet either. But it’s still cool.

    Read More...

    Go in Elm

    I’m not going to talk about this too much, but last weekend I spent the morning (~3 hours) starting to make the ancient game Go in Elm. I started with the game framework on the Elm website.

    Read More...

    Fun With Elm: A 5/3/1 Calculator

    Around March my back FINALLY started feeling much better.

    I guess I should start out by saying that in December 2011 I hurt my back while squatting. It was only about two months after I had competed in a powerlifting meet where I squatted 409 lbs, benched 264 lbs, and deadlifted 501 lbs, and of course I was already going hard in the gym again. I found a great groove in doing the competition lifts four times a week, but I think my poor mobility from a much too abbreviated warm up and day after day working slouched in front of a computer at my internship finally paid off in the form of a sudden pain in my lower back at the bottom of a routine 315 lb squat. I was hurt.

    Read More...

    Different Programming Approaches

    So I’m lying here trying to sleep, my mind cranked up after a beautiful sunny day spent tucked away in the computer lab, and I’m realizing just how much coding I’m doing during this 11 week period that is my last quarter at school. I have an internship at Experts Exchange, my senior project trying to parallelize a genetic selection algorithm using CUDA, and an interactive C visualizer which is meant to help students learning C c how it executes. That’s a lot of coding, and each project calls for a different style and level of rigour in coding. My mind spun on this for a while and I realized I could totally write this down, so I am. Hopefully I can get to sleep afterwards.

    Read More...

    CUDA In Terms of List Operations

    I believe that one of the reasons I took to CUDA fairly quickly was that I’m a functional programming enthusiast. I took a Programming Languages course my junior year which was taught by John Clements who contributed to Racket, a Scheme dialect. While the very first day of class looking at a LISPy language was a little odd (parentheses? prefix notation?), I got over it quickly and found that the programming paradigm just fit in my head. That summer I had an internship which consisted of writing and running tests that could take a while (30 minutes to an hour), so I started looking for stuff to learn about and I remembered how much I enjoyed Racket and LISP in general. I didn’t have a great grasp over monads (sorry Dr Clements, I might’ve fallen asleep in class that day) and googling that led me to Haskell, and I haven’t looked back in my love of compilers, static typing, and functional programming since.

    Read More...