Putting C++ to work - Making Abstractions for Vulkan Specialization Info

This post will explore some real-world usage of the more exotic template metaprogramming features of C++11, 14, and 17. I think the resulting interface is quite nice and would not have been as convenient to provide without modern language features. The specific application in this example is an abstraction around the Vulkan vk::SpecializationInfo struct but the techniques should transfer well to other domains outside graphics as well. All the code described here is free to use as a simple single header here.

Understanding Backpropagation My Way

Note to the reader: by “my way,” I don’t intend to purport that any of the thoughts in this post are original or unique. I did, however, write it off the top of my head so any similarity to other resources are incidental. Also, I’ve obviously read other books, papers, and articles on the subject of modern neural network architectures, so I don’t wish to lay claim to any of those ideas as well. I also believe that each individual should search for his or her own intuition of any concept, so what worked for me may not work for you (but it may aid you in that search).

A Brief Guide to Using the Vulkan C++ Bindings

I’m going to say it. If you are a C++ developer and learning or using Vulkan professionally, I believe you should be using the vulkan.hpp header. Most of the examples I see in the wild use the C interface, and I get why this is the case. We’re used to seeing an OpenGL-esque C-style interface and its also the primary source of all the documentation. My hope is that things will settle on the C++ version over time on all fronts: documentation, examples, and real-world code. Here are just a few of the benefits: