mIRC Homepage

Tutorial on how to create a VC++ DLL in Visual Studio 2012 for mIRC with CUDA


The DLL displays all available CUDA graphics devices
on your system. It might not sound impressive at the
moment, but getting the CUDA graphics handler is the
first step to utilizing your GPU.

Khaled, hope you're working on 64-bit support for DLL,
as I think CUDA kind of relies on it a bit more.

Can you explain why 64bit matters? CUDA should not require 64bit DLLs. If your point is that there is a memory limit to the types of computations you can do with your DLL, then you might want to consider a different architecture to easily workaround this. Specifically, it would be trivial to launch a new (64bit) process as a host controller for functions instead of calling cuda*() operations from the same 32bit process. The overhead of CreateProcess() should be negligible if you're dealing with computations on 4+GB data sets, and you can keep the process open so that it's no more heavy than loading the DLL in the first place. Incidentally, this architecture also gives you a better sandbox to work with, so that if the CUDA program crashes, it won't take mIRC with it. Given how low-level CUDA functions operate, that's probably something you want.
Reading the CUDA documentation, there are several
instances where it points out support for 32-Bit is either
depreciated or being depreciated. So although a lot of the
CUDA programming will probably work just fine in 32-bit,
you may eventually stumble into something that might not be

CUDA in general I think is trying to shift completely away
from utilizing the 32-bit architecture.

I'm not going to pretend to understand and spend the
rest of my day trying to explain why it is the way it is.

All I can tell you is, I compiled a 64-bit DLL and mIRC
wouldn't accept it.

I see what you're saying though, I could just create a new
64-bit process that could utilize the CUDA features.
© mIRC Discussion Forums