-
Notifications
You must be signed in to change notification settings - Fork 629
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use libcu++ interfaces. #3297
Use libcu++ interfaces. #3297
Conversation
CI MESSAGE: [2874299]: BUILD STARTED |
CI MESSAGE: [2874299]: BUILD FAILED |
CI MESSAGE: [2879811]: BUILD STARTED |
CMakeLists.txt
Outdated
@@ -254,6 +254,8 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | |||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument") | |||
# Ignore warnings coming from cutlass | |||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --system-header-prefix=cutlass/") | |||
# Enable SFINAE with ellipsis in device code | |||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xclang -fcuda-allow-variadic-functions") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This whole if(DALI_CLANG_ONLY)
section is about temporarily turning off warnings, that should be addressed (per @klecki comment above). Since this option is not turning off any warning, but enabling a feature, maybe it should be marked appropriately?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, no issue with turning this on, probably split it into warning section and useful feature section.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can move the comment and run build stage only again if you REALLY insist.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done - I had to fix basename extraction in linter, so another build is in order.
@@ -163,12 +162,14 @@ void AsyncPoolTest(Pool &pool, vector<block> &blocks, Mutex &mtx, CUDAStream &st | |||
CUDA_CALL(cudaMemsetAsync(ptr, fill, size, stream)); | |||
{ | |||
std::lock_guard<Mutex> guard(mtx); | |||
(void)guard; // for dummy mutexes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain this? I'm not sure I understand this line correctly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sometimes (in the tests) the mutex is a dummy object where the lock/unlock functions are empty and the compiler is smart enough to see that the construction/destruction has no effect and emits a warning.
[submodule "third_party/thrust"] | ||
path = third_party/thrust | ||
url = https://github.com/NVIDIA/thrust | ||
[submodule "third_party/libcudacxx"] | ||
path = third_party/libcudacxx | ||
url = https://github.com/mzient/libcudacxx.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is linking from your private fork on purpose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not been upstreamed yet, so yes, it's necessary for the time being.
See: NVIDIA/libcudacxx#158
third_party/cpplint.py
Outdated
@@ -4480,7 +4480,8 @@ def _ClassifyInclude(fileinfo, include, is_system): | |||
or include.endswith(".hpp") \ | |||
or include.endswith(".hxx") \ | |||
or include.endswith(".H") \ | |||
or include.endswith(".hh") | |||
or include.endswith(".hh") \ | |||
or '.' not in include[include.rfind('/')] # no extension |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we sure we want this? I recall you saying, that that's in order to have #include <cuda/memory_resource>
recognized as C++. However, we are not really running linter for third party headers, so I don't feel it's necessary to run it for <cuda/memory_resource>
. On the other hand, this may lead to strange linter behaviour in future.
@banasraf , what's your opinion about it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understand correctly, it's not about running linter on a third party header, but about ordering of includes. Linter requires some certain order of includes, and this change is to correctly qualify the cuda/memory_resource as C++ include.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
^^^ exactly that.
CI MESSAGE: [2879811]: BUILD PASSED |
CI MESSAGE: [2881094]: BUILD STARTED |
Signed-off-by: Michał Zientkiewicz <mzient@gmail.com>
Signed-off-by: Michał Zientkiewicz <mzient@gmail.com>
Signed-off-by: Michał Zientkiewicz <mzient@gmail.com>
Signed-off-by: Michal Zientkiewicz <michalz@nvidia.com>
Signed-off-by: Michał Zientkiewicz <mzient@gmail.com>
CI MESSAGE: [2882032]: BUILD STARTED |
CI MESSAGE: [2881094]: BUILD PASSED |
CI MESSAGE: [2882032]: BUILD PASSED |
Signed-off-by: Michał Zientkiewicz mzient@gmail.com
Description
What happened in this PR
Additional information
Affected modules and functionalities:
Checklist
Tests
Documentation
Acknowledgements.
DALI team only
Requirements
REQ IDs: N/A
JIRA TASK: DALI-2268