Can I render the viewport with CUDA? I'm using the default blender renderer and am trying to animate a scene with a bunch of different meshes (18 of them), all hooked up to the same armature, using the same bones and vertex groups (the vertex groups being connected to the bones). The meshes are different versions of fundamentally the same object. The problem is when I play the animation (of which there is none currently) I get about 5 fps, with all of the objects enabled.

That would seem totally acceptable, as there are 18 meshes, all of pretty good complexity (with normal maps). However, even when I disable all of the meshes except for the 2 that I want, the FPS value is still the same. I even tried putting them all on different layers, but the viewport still clung to around 5 fps.

I've also tried switching from material render mode to solid render mode, and that improved my FPS from around 5 to fluctuating from 12-14. This is still very sub-optimal, as I animate at 60fps.

I looked around a bit for the answer to the question in my title, and couldn't find anything. It's very possible that this isn't a current feature of Blender, as I know for a fact from previous experience that Cinema 4D (with non-PBR materials) renders the viewport with a single thread, and I would be willing to accept that's the case with blender too, so please let me know. If you have any further optimizations, though, please let me know, because I would be very appreciative.

After that, I took a look at the task manager and found I was using around 85% of my CPU, and only around 5% of my GPU (which probably wasn't being used much for blender). So, I was wondering if it was possible to render the viewport with CUDA, as I have an NVIDIA GeForce GTX 1080, which should be pretty effective if what I'm talking about does in fact exist.

If you need me to clarify anything, just let me know. Thanks in advance.
I think you are missing the point of what CUDA is. CUDA is a tooklit for running calculations on a gpu that are not part of a 'normal' graphics display pipeline. In the case of the viewport, rendering is already happening on the gpu using this normal display pipeline (in this case, opengl is the API used to communicate with the gpu). 

The fact that playback is slow, and most time is spent on the cpu suggests that the performance bottleneck is somewhere other than rendering. The most likely case for this are modifiers, if they are doing expensive recalculation each frame. Many modifiers in blender are not efficiently multithreaded. Try disabling or tuning as many as possible (e.g hide corrective smoothing, subdivision etc). You may also want to look at limiting the number of armature weights per vertex, as this can cause reduced performance too.