K40 general usage

I hope this question is not too naive but is there way in Windows to make the GPU cores available for general computing tasks? I have software that runs multiple threads and uses up all my cores in the task manager and I wish I could utilize the GPU cores as well for this purpose.

No.

Code that runs on a GPU has to be compiled for the GPU. Code that runs on your windows CPU is x86 code, it will not run as-is on a GPU.

Ok, I understand that the instructions are different. However theoretically, there is a set of similar instructions. Suppose those common instructions in x86 code are compiled for the GPU, then a driver that would translate the code between the two? I am not a programmer so I hope this is not too naive to think

Sure, if you compile something for the GPU, and do the job correctly, it should run on the GPU.

The operation needed is generally not as simple as just a recompile. There is usually some code porting or refactoring effort to take advantage of a massively multithreaded architecture.

And of course you need access to the source code of whatever it is you want to run on the GPU.

There are many things that won’t run correctly on a GPU (without significant re-architecting.) For example, file I/O. The GPU does not have access to the disk I/O subsystem (or the network, for that matter). So codes that directly write to disk or network adapters can’t run on the GPU.

Perhabs, I don’t understand how compiling works but my idea is that there would be a driver of sorts that would be in the middle between the OS and the GPU. The OS would see a virtual CPU and the driver in fact would be sending/receiving data from the GPU and translate it to the OS. Kind of like a SATA driver. The idea, is the driver would have to do all the work of translating the x86 instructions to instructions that can be understood by the GPU. It’s about the throughput so hopefully the driver would have some kind of achitechture to handle this complex task.

multi-GPUs <----> Special Driver <----> I/O <—> OS <----> Application

I am not a computer architect so if this is complete non sense I apologize