CUDA documentation project HEY EVERYBODY READ THIS it's short


I am putting together a single (rather large) searchable file with EVERYTHING I have been able to find

in the way of descriptive documentation of the variety of things we find in the SDK code samples.

Even so, for example, I am being prevented from acting the part of the honest craftsman by the lack of any such description
of things like CheckRender.

I abhor blind copying of example code without knowing what it does, what its arguments/parameters mean, etc.

PLEASE ADD to this list, anything you know about that has been useful in terms of documentation for you.

When I get the huge file all done, and after asking for permission from the various authors, I’ll be putting this together as class materials
for teaching purposes, and, depending a bit on the restrictions imposed by authors, I will share it with you.

If I can’t share the file, at least we’ll ALL have a list of ALL the docs ANY of us have found.

The NVSG people are asking for feedback, and I’m trying to tap into that willingness, to get whatever I can get out of nvidia.


reference manual
programming guide
compiler driver nvcc
best practices guide
release notes
openGL mini - how-to

ALL THE FOLDERS that come with the toolkit

GL folder
dynlink folder
some stuff from /SDK/C/common/inc about cutil
CUVID folder

ONLINE SOURCES for GL & GLUT…anual/index.xml for GL and GLUT…pec3/spec3.html for GLUT


like the general FAQ

Sorry for a discouraging remark…

But, You could very well zip all of them into 1 file… Howzz that going to help teaching? I doubt it.

CUDA requires a good syllabus that incrementally increases complexity.

Documenting cutil would not do much good. It’s not considered production quality code and should not be used in commercial projects.

Between the SDK versions, the cutil API usually changes pretty significantly.

CheckRender implements a feature for comparing the output of an OpenGL based app with previousuly stored reference image(s), mostly for running automated tests on all the SDK programs.

[quote name=‘Sarnath’ date=‘Oct 14 2009, 11:58 PM’ post=‘601165’]

Sorry for a discouraging remark…

But, You could very well zip all of them into 1 file… Howzz that going to help teaching? I doubt it.


It will help teaching in the following way:

instead of flailing about, not knowing where to look for definitions and source code (because there is no reliable index anywhere) and spending many minutes/per/task finding each item, the student will find all there is to find about the item in perhaps one minute.

It is impossible to increase complexity in a controlled way when one is relying on brute-force ignorant copying of example code and hoping for the best.

It’s so inefficient as to be really silly. It’s bad engineering practice.

Again, sorry for the discouraging remark…

But have you heard of a search engine? It’s pretty much the only thing you need to use as an ‘index’ when you’re looking for something.

“CUDA samples” comes up, first result, straight to the official CUDA SDK Code Samples page…

“CUDA SDK”, same deal…

“CUDA tutorials”, same deal… (though interestingly nVidia is second result here)

As for offline references, all one needs to know is to install the CUDA Toolkit for all the documentation you need, and the CUDA SDK for reference material…

I fail to see why we need yet another independent compilation of already easily accessible and indexed information.

My only gripe with CUDA documentation is lacking Driver/Runtime API documentation, especially in regard to pre conditions, post conditions, side effects, and error codes for each function.

Oh yes… Search engine is the thing…

but I c what Clanz is seeing…

If you could package it as a Visual studio plugin or sthg – that can give you an easy reference … it would be handy for developers…

Like, right click “cudaMemcpy” and the drop down has a new “CUDA documentation” and you click it … Voila… U have a small box opened on your right side with a documentation of the function … That would be great!

Pretty much like what MSFT does with MSDN. If a CUDA plugin can trap that F1 key, it would be great as well.

They already ship doxygen documentation for the runtime and driver API in the tool kit…

And once again, the doxygen documentation is lacking, “especially in regard to pre conditions, post conditions, side effects, and error codes for each function.”.

Does the doxygen doco tell you what the function does, and what the parameters are for? yes.

Is the doxygen doco ‘enough’ to get by and make something work? yes.

Is the doxygen doco enough to help you debug and diagnose why calling X after Y changes the behaviour of X in strange ways? no.

or enough to be informed about post-X synchronization guarantees between streams/contexts/running kernels? no.

or why X returns strange error codes no one else seems to have encountered? no.

or why X returns specific error codes at all? no.

Greetings again,

Well, I made an email address file of the 200 or so people who teach CUDA classes, and
sent the same request for additions to the document list to all of them.

I got 31 replies.

Only one added anything to the list. the other 30 said

“Great Idea! Let me have the link when you’re done.”

Consequently I have no more interest in discussing the utility of the project. Enough people agree that it’s badly needed
that I’ll just go ahead, whatever. So no more flames, please. It’s rude & pointless.

Let me know by email if you’d like it when it’s done, and, PLEASE let me know if you find good sources.

BTW, did anyone out there ever find “cutComparefet”? That’s one of the only SDK sample items I’ve been completely unable to run down.
Maybe I did a typo while searching.