[Openmp-commits] [PATCH] D74145: [OpenMP][Offloading] Added support for multiple streams so that multiple kernels can be executed concurrently

Shilei Tian via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Fri Feb 7 13:39:51 PST 2020


tianshilei1992 added inline comments.


================
Comment at: openmp/libomptarget/plugins/cuda/src/rtl.cpp:259
+    for (std::unique_ptr<std::atomic_int> &Ptr : NextStreamId) {
+      Ptr = std::unique_ptr<std::atomic_int>(new std::atomic_int(0));
+    }
----------------
jdoerfert wrote:
> tianshilei1992 wrote:
> > tianshilei1992 wrote:
> > > JonChesterfield wrote:
> > > > tianshilei1992 wrote:
> > > > > JonChesterfield wrote:
> > > > > > jdoerfert wrote:
> > > > > > > tianshilei1992 wrote:
> > > > > > > > JonChesterfield wrote:
> > > > > > > > > If we do need the pointer wrapper, this should be make_unique
> > > > > > > > `make_unique` only works since C++14.
> > > > > > > Do we have llvm::make_unique? But maybe not necessarily good to use it here anyway. @jon ok to stick with this for now?
> > > > > > llvm::make_unique was removed by D66259, as we're now assuming C++14. They're semantically identical in this context so it doesn't matter much.
> > > > > Do you mean that we can assume -std=c++14 is always true?
> > > > Other files in LLVM won't build with c++11 any more so >=14 seems a safe bet.
> > > That is cool! Thanks for the information. Will update this part correspondingly.
> > Well, I just tried with `make_unique` but it turns out we're still using C++11 actually.
> > ```
> > FAILED: libomptarget/plugins/cuda/CMakeFiles/omptarget.rtl.cuda.dir/src/rtl.cpp.o
> > /home/shiltian/.local/bin/clang++  -DOMPTARGET_DEBUG -DTARGET_NAME=CUDA -Domptarget_rtl_cuda_EXPORTS -I/home/shiltian/Documents/clion/llvm-project/openmp/libomptarget/include -I/opt/cuda/10.1/include -Wall -Wcast-qual -Wformat-pedantic -Wimplicit-fallthrough -Wsign-compare -Wno-extra -Wno-pedantic -std=gnu++11 -g -fPIC -MD -MT libomptarget/plugins/cuda/CMakeFiles/omptarget.rtl.cuda.dir/src/rtl.cpp.o -MF libomptarget/plugins/cuda/CMakeFiles/omptarget.rtl.cuda.dir/src/rtl.cpp.o.d -o libomptarget/plugins/cuda/CMakeFiles/omptarget.rtl.cuda.dir/src/rtl.cpp.o -c /home/shiltian/Documents/clion/llvm-project/openmp/libomptarget/plugins/cuda/src/rtl.cpp
> > /home/shiltian/Documents/clion/llvm-project/openmp/libomptarget/plugins/cuda/src/rtl.cpp:259:18: error: no member named 'make_unique' in namespace 'std'
> >       Ptr = std::make_unique<std::atomic_uint>(0);
> >             ~~~~~^
> > /home/shiltian/Documents/clion/llvm-project/openmp/libomptarget/plugins/cuda/src/rtl.cpp:259:46: error: expected '(' for function-style cast or type construction
> >       Ptr = std::make_unique<std::atomic_uint>(0);
> >                              ~~~~~~~~~~~~~~~~^
> > 2 errors generated.
> > ninja: build stopped: subcommand failed.
> > ```
> Change the cmake in a separate commit. Llvm is on 14.
So OpenMP will also switch to C++ 14 in a near future?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74145/new/

https://reviews.llvm.org/D74145





More information about the Openmp-commits mailing list