Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: nVidia Optumus prevents using CUDA?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122647] Re: nVidia Optumus prevents using CUDA?
  • From: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>
  • Date: Fri, 4 Nov 2011 06:02:03 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111021123.GAA03595@smc.vnet.net> <j8tk9l$epl$1@smc.vnet.net>

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.



  • Prev by Date: Re: LogErfc
  • Next by Date: Re: Mathematica 8.0.4 now available
  • Previous by thread: Re: nVidia Optumus prevents using CUDA?
  • Next by thread: Re: nVidia Optumus prevents using CUDA?