[clangd-dev] Clangd CUDA support

Jacek Ciesielski via clangd-dev clangd-dev at lists.llvm.org
Sat Mar 23 12:29:44 PDT 2019

Hi Ilya,

Thank you for replying!

Today, I did some more extensive testing. I've managed to run YCM with 
clangd support successfully. I still fail with libclang. I guess that's 
a whole different story.

It turns out, I've been using compile_commands.json generated by cmake, 
which doesn't support clang as cuda compiler. After correcting the flags 
manually, I was able to get completion for a .cu file. Like you said, it 
doesn't recognize cuda specific code, e.g. __syncthreads(); but I reckon 
those are fixable by some quick macros and include hacks.

However, my setup of VSCode fails completely when it comes to .cu files. 
I am attaching screen showing a simple cpp-only completion test. I 
expected it would know a list of vector's method.
Arch linux 5.0.3
VSCode 1.32.3, vscode-clangd 0.0.11
clangd 7.0.1

My project is closed source. I need some CUDA 9 and 10 features so I am 
kinda forced to use nvcc.

I suppose the next position on my wish list is generating commands for 
clang by cmake or accepting nvcc flags by clang. Even with script 
replacing flags, needing to run it each time I regenerate flags is dull.

Best regards,

On 3/22/19 3:36 PM, Ilya Biryukov wrote:
> Hi Jacek,
> We haven't put any effort into supporting CUDA so far.
> However, clang supports CUDA, so basic features should work on CUDA 
> code, e.g. non-CUDA-specific completions, resolve, etc.
> The difficulty is obtaining a compilation database that specifies 
> proper CUDA-specific flags.
> Could you describe the setup with YCM or VSCode that you tried and 
> that didn't work for you? What's the project (if it's open-source) you 
> tried running on? What's your OS and what kind of toolchain do you use 
> for the build (nvcc, clang)?
> On Fri, Mar 22, 2019 at 2:26 PM Jacek Ciesielski via clangd-dev 
> <clangd-dev at lists.llvm.org <mailto:clangd-dev at lists.llvm.org>> wrote:
>     Hi guys,
>     I couldn't find any reliable info whether clangd supports CUDA
>     completion.
>     Docs mention only C++. Yet, I tried using it with some CUDA code. I
>     didn't succeed trying with YCM nor VS Code. Is it possible at all?
>     How
>     much effort would that possibly take to develop support for CUDA?
>     Best regards,
>     Jacek
>     _______________________________________________
>     clangd-dev mailing list
>     clangd-dev at lists.llvm.org <mailto:clangd-dev at lists.llvm.org>
>     https://lists.llvm.org/cgi-bin/mailman/listinfo/clangd-dev
> -- 
> Regards,
> Ilya Biryukov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/clangd-dev/attachments/20190323/5794d6be/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen-vscode.png
Type: image/png
Size: 48135 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/clangd-dev/attachments/20190323/5794d6be/attachment-0001.png>

More information about the clangd-dev mailing list