[cfe-dev] Parsing CUDA file to AST

jotas julian.maciejewski at gmail.com
Wed Mar 5 14:17:34 PST 2014


Yep, but there are lots of publications about CU2CL which is CUDA to
Open-Cl source-to-source compiler. I'm curious how they made it if this
approach is not supported yet. Unfortunately there is no code of this
project in the Internet :/ What should I do?




2014-03-05 23:01 GMT+01:00 Eli Bendersky-2 [via Clang Developers] <
ml-node+s42468n4038302h25 at n3.nabble.com>:

> On Wed, Mar 5, 2014 at 1:40 PM, jotas <[hidden email]<http://user/SendEmail.jtp?type=node&node=4038302&i=0>
> > wrote:
>
>> Actually I have same  problem as this guy:
>> http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-June/015596.html
>>
>> I set search patches and now my program sees __global__ etc. but not
>> blockDim.x or threadIdx.x.
>>
>
> Yeah, these don't work in Clang yet. Patches welcome!
>
> I have some very initial patches to implement this, but very far from
> something I could actually send upstream. It may take time until I get to
> that.
>
> Eli
>
>
>
>
>> I set flag -D__CUDACC__ in makefile but it doesnt work. setting:
>>
>> TheCompInst.getPreprocessorOpts().addMacroDef("__CUDACC__"); gives even
>> more errors like:
>>
>> /usr/local/cuda-5.5/include/cuda_runtime_api.h:1029:17: warning: unknown
>> attribute 'cudart_builtin' ignored
>> extern __host__ __cudart_builtin__ cudaError_t CUDARTAPI
>> cudaGetLastError(void);
>>                 ^
>> /usr/local/cuda-5.5/include/host_defines.h:199:22: note: expanded from
>> macro '__cudart_builtin__'
>>         __location__(cudart_builtin)
>>                      ^
>> /usr/local/cuda-5.5/include/host_defines.h:83:22: note: expanded from
>> macro
>> '__location__'
>>         __annotate__(a)
>>
>>
>
>
>
>
>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2014-03-05 22:26 GMT+01:00 Eli Bendersky-2 [via Clang Developers] <
>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4038302&i=1>>:
>>
>> >
>> >
>> >
>> > On Wed, Mar 5, 2014 at 4:12 AM, jotas <[hidden email]<
>> http://user/SendEmail.jtp?type=node&node=4038299&i=0>
>>
>> > > wrote:
>> >
>> >> Hi,
>> >> I ma building rewriter based on clang (based on some tutorial
>> available on
>> >> the internet).
>> >> I am loading CUDA file and trying to traverse AST. I got a problem. It
>> >> doesn't recognize CUDA directives like __global__ etc.
>> >> I set:
>> >> TheCompInst.getLangOpts().CUDA = 1;
>> >> and source search patch to:
>> >> /usr/include/linux
>> >>
>> >> Sould I do someting more?
>> >>
>> >> I get an error:
>> >>
>> >> :~/Documents/rewriter$ ./rewritersample bigfunc2.c
>> >> bigfunc2.c:17:1: error: unknown type name '__global__'
>> >> __global__ void foo22(int *a, int *b, int *c) {
>> >> ^
>> >> bigfunc2.c:17:12: error: expected identifier or '('
>> >> __global__ void foo22(int *a, int *b, int *c) {
>> >>            ^
>> >> #include <cuda.h>
>> >>
>> >> #define N_WAVE          1024
>> >> #define LOG2_N_WAVE     10
>> >>
>> >
>> > These are usually defined as preprocessor macros in the CUDA headers,
>> > something like:
>> >
>> > #define __device__ __attribute__((device))
>> >
>> > You can take a peek at the public CUDA headers for more information.
>> >
>> > Eli
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > cfe-dev mailing list
>> > [hidden email] <http://user/SendEmail.jtp?type=node&node=4038299&i=1>
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>> >
>> >
>> > ------------------------------
>>
>> >  If you reply to this email, your message will be added to the
>> discussion
>> > below:
>> >
>> >
>> http://clang-developers.42468.n3.nabble.com/Parsing-CUDA-file-to-AST-tp4038287p4038299.html
>> >  To unsubscribe from Parsing CUDA file to AST, click here<
>> > .
>> > NAML<
>> http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
>> >
>> >
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://clang-developers.42468.n3.nabble.com/Parsing-CUDA-file-to-AST-tp4038287p4038301.html
>> Sent from the Clang Developers mailing list archive at Nabble.com.
>> _______________________________________________
>> cfe-dev mailing list
>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4038302&i=2>
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
>
> _______________________________________________
> cfe-dev mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=4038302&i=3>
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://clang-developers.42468.n3.nabble.com/Parsing-CUDA-file-to-AST-tp4038287p4038302.html
>  To unsubscribe from Parsing CUDA file to AST, click here<http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4038287&code=anVsaWFuLm1hY2llamV3c2tpQGdtYWlsLmNvbXw0MDM4Mjg3fC00NjM1OTk5MDA=>
> .
> NAML<http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://clang-developers.42468.n3.nabble.com/Parsing-CUDA-file-to-AST-tp4038287p4038303.html
Sent from the Clang Developers mailing list archive at Nabble.com.



More information about the cfe-dev mailing list