Re: nVidia Optumus prevents using CUDA?
- To: mathgroup at smc.vnet.net
- Subject: [mg122716] Re: nVidia Optumus prevents using CUDA?
- From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
- Date: Mon, 7 Nov 2011 05:53:28 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201111041102.GAA29243@smc.vnet.net>
On Fri, 4 Nov 2011, Oleksandr Rasputinov wrote: > On Thu, 03 Nov 2011 08:44:37 -0000, Oliver Ruebenkoenig > <ruebenko at wolfram.com> wrote: > >>> As you see, this does not involve Visual Studio Express, which I >>> deliberately avoided since it does not include the 64-bit compilers >>> necessary for operation with Mathematica. Personally, I use MinGW-w64 >>> GCC >>> 4.6.1 rather than Visual C++; this works perfectly well also but does >>> require modifications to Mathematica which I will not discuss here other >>> than to say that it would be nice if this compiler could be supported >>> without need of modifications in a future release. >>> >>> >> >> I filed this as a suggestion for a future version. >> >> Oliver >> > > Many thanks. For reference, this support is not very difficult to > implement: apart from some (trivial) changes to > CCompilerDriver/MinGWCompiler.m and > CCompilerDriver/CCompilerDriverRegistry.m, the only other prerequisite is > to have the necessary libraries (ml32i3m.lib/ml64i3m.lib etc.) provided in > GNU COFF format in addition to the ones in MS COFF format. Import > libraries can be generated automatically from the associated DLLs (using > MinGW gendef followed by dlltool), and static link libraries can be > converted automatically as well (using MinGW ranlib). One thing to note is > that MinGW-w64 is a multilib build--i.e. it can produce both 32- and > 64-bit binaries--so you need to provide GNU COFF versions of both sets of > libraries. > > The only problem I ran into in implementing the support myself was that > ml32i3s.lib and ml64i3s.lib are linked against the static version of the > MS C runtime (libcmt.lib), which means they cannot successfully be > converted automatically due to certain dependencies. Fixing this is > possible but would be a lot easier if they were instead linked against the > dynamic C runtime (msvcrt.dll/msvcr80.dll etc.) instead--however, I didn't > actually try as I couldn't think of any reason why one would want to build > a statically-linked MathLink program in the first place, so for me these > libraries are superfluous anyway. > I am anything else but an expert on this, so I asked around a little. The following is about MinGW-64w. The problem here is that the DLL C run-time lib does not ship with Windows. So it needs to be installed additionally, possibly requiring admin privileges. Also, the the DLL c run-time lib changes from Visual Studio version to version. It looks unlikely this is going to be part of Mathematica. Oliver
- References:
- Re: nVidia Optumus prevents using CUDA?
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov@hmamail.com>
- Re: nVidia Optumus prevents using CUDA?