Skip to content
View jakedves's full-sized avatar

Highlights

  • Pro

Block or report jakedves

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
jakedves/README.md

Jake Davies ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป

I'm a PhD student who's interested in computer architecture, high performance computing, and deep learning. Interested in parallel architectures, including CPUs, GPUs, and accelerators. My work currently focuses on compiling for the RISC-V-based Tenstorrent accelerators.


๐Ÿ› ๏ธ Recent Projects

๐Ÿค– Deep Reinforcement Learning for NES Super Mario Bros. ๐ŸŽฎ

Implemented RainbowDQN with CUDA acceleration (via PyTorch) to train a deep reinforcement leraning agent to play Super Mario Bros. Some experiments we ran:

  • Which methods yielded the most significant performance?
  • How well do agents generalise across levels? (via transfer learning)
  • What is the best transfer learning approach? (one level specialist, vs generalist)
  • What are the best hyperparameters for our agent (coordinate descent approach)

We collected metrics for each of these, using frames (~steps) as our measure of time, which is more rigourous than episodes (which can vary in step length). Some of our video demos and results are shown below:

Full Game Performance
Full Game Performance
Multi-level Training 1
Multi-level Training 1
Multi-level Training 2
Multi-level Training 2
Graph comparing agent training progressions
Comparing agents (training)
Graph comparing agent level completions
Comparing agents (level completion)
Graph comparing transfer learning approaches
Comparing transfer learning approaches

๐Ÿ’ก Advanced Raytracer

Raytracer built from scratch in C++, with the following features:

  • Global Lighting (reflections/refraction)
  • Accelerated Raytracing (Bounding Boxes, multithreading parallelism)
  • Quadratic Surfaces (Cones, ellipses, curved surfaces in general)
  • Constructive Solid Geometries to combine surfaces
  • PolyMesh rendering (.obj file parser that constructed triangles, see the teapot in the image)
  • Phong material colouring, with photon mapping support
  • Global illumination by generating and querying a photon map (see paper)

Description

Final render with photon mapping


Languages and Tools

I'm pretty happy using any languages, with my main experience being in:

  • C, C++
  • Python
  • Swift
  • Java

Pinned Loading

  1. advanced-raytracer advanced-raytracer Public

    Description of how my raytracer was implemented in C++

    C++

  2. deep-reinforcement-learning deep-reinforcement-learning Public

    The post training video of our agent performance

    Python 1

  3. visionary visionary Public

    Computer Vision based approach to using macOS (demo in README).

    Swift 6

  4. relaxation-metal relaxation-metal Public

    Implementation of the relaxation technique in Swift and Metal compute shaders

    Metal