It seems -use_fast_math is in the wrong place

In the CUDA 10.1 (and earlier) integration for Visual Studio 2019 (and earlier) the CUDA C/C++ section of the Configuration Properties for a project is divided into three sections: Common, Device, and Host. One of the options on the Host tab is “Use Fast Math”, with the option “Yes (-use_fast_math)”. This is very misleading because I’m pretty sure the -use_fast_math nvcc option only affects math on the device, not the host. The CUDA Programming Guide says:

Among these functions are the less accurate, but faster versions of some of the functions of Standard Functions .They have the same name prefixed with __ (such as __sinf(x)). They are faster as they map to fewer native instructions. The compiler has an option (-use_fast_math) that forces each function in Table 8 to compile to its intrinsic counterpart…

This is clearly about device code.

If you’d like to see a change in any aspect of CUDA, the recommendation is to file a bug using the instructions linked in a sticky post at the top of this sub-forum.

Thanks Robert. I posted here to see whether the community sees this as a bug, or whether I’m missing something. Could you confirm that you see this as a bug as well?

If Nvidia takes pride in their products it seems to me that Nvidia employees would be motivated to log all bugs that come to their attention, regardless of whether there’s a possible way for customers to log them as well.

I don’t really think it is a bug. I’m using that word loosely here. It doesn’t really fit the definition of something I would consider important to take action on. Your logic seems to make sense, however:

  • There might be some reason I haven’t considered that our designers chose to put it there.
  • Since there are many folks who use the CUDA toolkit and haven’t mentioned this issue, there may be considerable expectations in the development community about where to find it. Making UI changes like that is not something I have expertise in so wouldn’t make a judgement.
  • This strikes me as a very low priority issue.

It’s OK if you disagree with me. You have the bug filing portal at your disposal to address your concerns. This is a community and its the nature of community to occasionally disagree.

Where I can determine that something is obviously broken, and/or is potentially a serious issue (which claim I wouldn’t make here) then I very often do file bugs, whether a customer chooses to or not.

There are other good reasons for you to file a bug.

  1. If you file a bug, your opinion expressed that way carries additional weight in our system. The people who handle bug triage very often ask for more information, and communicate back and forth with the person who filed the bug.
  2. If you file a bug, you get automated information about the progress of the bug. If I file it, you don’t.

I assure you I take pride in our products, and file many bugs.

FWIW, I filed a bug for you. 2733262

I won’t be able to respond to requests for information about the progress of that bug. That is not a scalable process for me (nor is intended by NVIDIA to be how we scale that process); the mechanism that NVIDIA has provided for that sort of information is for you to file a bug.

I am speaking from experience here: That model doesn’t scale, in particular when bugs require follow-up or subject matter expertise. It may happen in some instances, in which case a note is typically left in the thread that raised the issue. [Later:] A worked example of such a note can be found in this thread.

Generally speaking, these forums were not designed or intended as a bug-reporting venue, but as a platform that mostly facilitates user-to-user communication.

Thanks for filing the bug, Robert. I agree that there can be legacy reasons to not fix a bug; the team will have to make the call, but at least they know about it now.

I agree with you both that bugs that can require customer interaction or are otherwise complex are best filed by the customer. And it’s usually no coincidence that for those bugs the customer is depending on the fix and is therefore motivated to find, learn, and use the bug reporting system.

The present bug is of a different class, where it’s simple, doesn’t require reproducing or other interaction with me, and not coincidentally, I don’t depend on the solution. I reported it simply to help the company and the community. In these cases, where the user is simply going out of their way to help, is where I think not requiring them to go further out of there way is appropriate. Thanks again for doing so.

I encountered the same problem and I think It should be higher priority. The reason is if you set the project to output PTX files, then none of the settings in the “Host” tab are passed to nvcc compiler. That means the only way to generate PTX files with -use_fast_math option is to pass it manually on “Additional Options” in “Command Line” tab. And if you are using modern CMake to generate your projects, then it is not possible.