[Scons-users] CudaTool

William Blevins wblevins001 at gmail.com
Tue Jun 16 17:32:08 EDT 2015


Bill,

Hmm.  Unless I am missing something, the entirety of the Tool exists on the
Wiki, so if it doesn't add it there then it isn't used.  I haven't heard of
that file extension from any other compiler.

David,

Can you try making the change Bill and I are discussing.  See if that works
for you?   If so, I imagine this will simplify your build scripts a lot.
We can make an update to the SCons wiki also.  Let me know if you need a
delta explicitly.

V/R,
William

On Tue, Jun 16, 2015 at 5:03 PM, Bill Deegan <bill at baddogconsulting.com>
wrote:

> Likely the right way for the Cuda tool to handle this is to mark those
> files as SideEffect(), unless they are somehow an input to other tools..
>
> Similar issues happen with env.SharedLibrary() on win32.. You'll get a
> .dll, .lib and/or .def file so if you want to use the returned nodes you
> may have to filter them for the one you want.
> -Bill
>
> On Tue, Jun 16, 2015 at 1:57 PM, William Blevins <wblevins001 at gmail.com>
> wrote:
>
>> Bill,
>>
>> Or is the SConsWiki the original source, so we are the developers?
>>
>> V/R,
>> William
>>
>> On Tue, Jun 16, 2015 at 4:55 PM, William Blevins <wblevins001 at gmail.com>
>> wrote:
>>
>>> David,
>>>
>>> All in all, it seems that may have been a question more appropriate for
>>> the SCons CUDA tool developer, but looking at
>>> https://bitbucket.org/scons/scons/wiki/CudaTool notes section, it
>>> appears that those files are only added to the Emitter so that scons -c
>>> works for those files.
>>>
>>> Bill,
>>>
>>> Can the CUDA emitter simply call Clean( 'item.linkinfo' ) in the emitter
>>> to explicitly without needing to return the item itself?  I assume this
>>> would work, and it would simply that Builder if no one uses the
>>> "*.linkinfo" file.  If you think this will, I will contact the developer.
>>>
>>> V/R,
>>> William
>>>
>>>
>>> On Tue, Jun 16, 2015 at 11:00 AM, Bill Deegan <bill at baddogconsulting.com
>>> > wrote:
>>>
>>>> William,
>>>>
>>>> Thanks for the assist, you are correct in your corrections.
>>>>
>>>> Good question about the purpose of the .linkinfo. (They are added in
>>>> the cuda tool..)
>>>> I did take a course on cuda programming a while back and I"m thinking
>>>> these are used to link the native code to code which will run on the GPU
>>>> hardware.
>>>> So while they (I believe) aren't needed in the .a they are used by
>>>> other tools in the tool chain.
>>>>
>>>> -Bill
>>>>
>>>> On Tue, Jun 16, 2015 at 7:56 AM, William Blevins <wblevins001 at gmail.com
>>>> > wrote:
>>>>
>>>>>
>>>>> On Tue, Jun 16, 2015 at 10:29 AM, Bill Deegan <
>>>>> bill at baddogconsulting.com> wrote:
>>>>>
>>>>>> David,
>>>>>>
>>>>>> How about:
>>>>>>
>>>>>> foo = env.StaticObject(“foo.cu”,<foo-options>)
>>>>>> bar = env.StaticObject(“bar.cu”,<bar-options>)
>>>>>>
>>>>>> foo_objects = [ x for x in foo if x.str().endswith('.o') ]
>>>>>> bar_objects = [ x for x in bar if x.str().endswith('.o') ]
>>>>>>
>>>>>>
>>>>>> env.StaticLibrary(libname, [foo, bar]
>>>>>>
>>>>>
>>>>> I think the about line needs to be env.StaticLibrary(libname,
>>>>> [foo_objects, bar_objects] though right?
>>>>>
>>>>>
>>>>>> [Also note your example you added bar-options to env1 instead of env2]
>>>>>> I didn't try the code above but that's the general way I'd go about
>>>>>> it.
>>>>>> Remember that all builders return list of nodes.
>>>>>>
>>>>>> -Bill
>>>>>>
>>>>>
>>>>> Thanks Bill.
>>>>>
>>>>> I wasn't 100% sure I understood his question, but even though we have
>>>>> given him a workaround I think we have sidestepped a more important
>>>>> question.
>>>>>
>>>>> What are *.linkinfo used for, and if they aren't being used why are
>>>>> they being created?  Are linkinfo specific to certain toolchains?
>>>>>
>>>>> V/R,
>>>>> William
>>>>>
>>>>>
>>>>>>
>>>>>> On Tue, Jun 16, 2015 at 5:31 AM, David Wade <DAWAD at statoil.com>
>>>>>> wrote:
>>>>>>
>>>>>>>  Hi,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I have been using this nifty bit of python for some time:
>>>>>>> https://bitbucket.org/scons/scons/wiki/CudaTool
>>>>>>>
>>>>>>> Just ran into an issue of finding scons was trying to run “ar rc
>>>>>>> foo.o foo.linkinfo bar.o bar.linkinfo” when I tried this:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> env1 = env.Clone()
>>>>>>>
>>>>>>> env2 = env.Clone()
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> env1.Append(<foo-options>)
>>>>>>>
>>>>>>> foo = env1.StaticObject(“foo.cu”)
>>>>>>>
>>>>>>> env1.Append(<bar-options>)
>>>>>>>
>>>>>>> bar = env2.StaticObject(“bar.cu”)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> env.StaticLibrary(libname, [foo, bar])
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> My workaround has been to comment out references to the “Emitter”
>>>>>>> functions in cuda.py … but is this the best thing to do?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Many thanks!
>>>>>>>
>>>>>>>
>>>>>>> *David Wade*
>>>>>>> Senior Analyst, Seismic Imaging Development
>>>>>>> *ITV SUB RH / HPC Development Team, *Statoil ASA
>>>>>>>
>>>>>>> *Phone*: +47 97572157
>>>>>>> *Email*: *dawad at statoil.com <dawad at statoil.com>*
>>>>>>> *Visitor address*: Vassbotnen 23, Forus, Norway
>>>>>>>
>>>>>>>
>>>>>>> Incorporation number: NO 923 609 016 MVA
>>>>>>> *www.statoil.com <http://www.statoil.com/>*
>>>>>>> Please consider the environment before printing this e-mail.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -------------------------------------------------------------------
>>>>>>> The information contained in this message may be CONFIDENTIAL and is
>>>>>>> intended for the addressee only. Any unauthorised use, dissemination
>>>>>>> of the
>>>>>>> information or copying of this message is prohibited. If you are not
>>>>>>> the
>>>>>>> addressee, please notify the sender immediately by return e-mail and
>>>>>>> delete
>>>>>>> this message.
>>>>>>> Thank you
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Scons-users mailing list
>>>>>>> Scons-users at scons.org
>>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Scons-users mailing list
>>>>>> Scons-users at scons.org
>>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Scons-users mailing list
>>>>> Scons-users at scons.org
>>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Scons-users mailing list
>>>> Scons-users at scons.org
>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150616/38bae08c/attachment-0001.html>


More information about the Scons-users mailing list