Skip to content
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

Building rocBLAS 2.10 from source - error: call to implicitly-deleted default constructor #845

Closed
justxi opened this issue Nov 30, 2019 · 3 comments

Comments

@justxi
Copy link
Contributor

justxi commented Nov 30, 2019

What is the expected behavior

  • Successful build of rocBLAS

What actually happens

  • Build fails with the attached error.

How to reproduce

Environment

Hardware description
GPU Radeon RX 560
CPU Intel Core i5
Software version
ROCK v2.10
ROCR v2.10
HCC v2.10
Library v2.10

The build error:

[3/81] /usr/lib/hcc/2.10/bin/hcc -DTENSILE_DEFAULT_SERIALIZATION -DTENSILE_USE_HIP -Ivirtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include -I/usr/lib/llvm/6/include -isystem /usr/lib/hip/include -isystem /usr/lib/hcc/2.10/include  -DNDEBUG --amdgpu-target=gfx803 -hc -fopenmp=libomp   -hc -fPIC -std=c++14 -MD -MT Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o -MF Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o.d -o Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o -c virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/source/EmbeddedLibrary.cpp
FAILED: Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o 
/usr/lib/hcc/2.10/bin/hcc -DTENSILE_DEFAULT_SERIALIZATION -DTENSILE_USE_HIP -Ivirtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include -I/usr/lib/llvm/6/include -isystem /usr/lib/hip/include -isystem /usr/lib/hcc/2.10/include  -DNDEBUG --amdgpu-target=gfx803 -hc -fopenmp=libomp   -hc -fPIC -std=c++14 -MD -MT Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o -MF Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o.d -o Tensile/lib/CMakeFiles/TensileHost.dir/source/EmbeddedLibrary.cpp.o -c virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/source/EmbeddedLibrary.cpp
clang-10: warning: argument unused during compilation: '--amdgpu-target=gfx803' [-Wunused-command-line-argument]
In file included from virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/source/EmbeddedLibrary.cpp:29:
In file included from virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include/Tensile/EmbeddedLibrary.hpp:32:
virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include/Tensile/Singleton.hpp:39:26: error: call to implicitly-deleted default constructor of 'Tensile::EmbeddedData<Tensile::SolutionLibrary<Tensile::ContractionProblem, Tensile::ContractionSolution> >'
            static Class instance;
                         ^
virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include/Tensile/EmbeddedData.hpp:62:39: note: in instantiation of member function 'Tensile::LazySingleton<Tensile::EmbeddedData<Tensile::SolutionLibrary<Tensile::ContractionProblem, Tensile::ContractionSolution> > >::Instance' requested here
            auto const& items = Base::Instance().items;
                                      ^
virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/source/EmbeddedLibrary.cpp:42:82: note: in instantiation of member function 'Tensile::EmbeddedData<Tensile::SolutionLibrary<Tensile::ContractionProblem, Tensile::ContractionSolution> >::Get' requested here
        auto const& data = EmbeddedData<SolutionLibrary<MyProblem, MySolution>>::Get(key);
                                                                                 ^
virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include/Tensile/EmbeddedData.hpp:84:9: note: explicitly defaulted function was implicitly deleted here
        EmbeddedData() = default;
        ^
virtualenv/lib/python3.5/site-packages/Tensile/Source/lib/include/Tensile/EmbeddedData.hpp:87:21: note: default constructor of 'EmbeddedData<Tensile::SolutionLibrary<Tensile::ContractionProblem, Tensile::ContractionSolution> >' is implicitly deleted because field 'empty' of const-qualified type 'const Tensile::EmbeddedData::Items' (aka 'const vector<vector<unsigned char> >') would not be initialized
        const Items empty;
                    ^
1 error generated.

I changed

const Items empty;

in "Tensile/Source/lib/include/Tensile/EmbeddedData.hpp" to:

const Items empty = {};

then it compiles. Is it an acceptable solution?

@ekuznetsov139
Copy link
Contributor

Seeing the same issue here.

@acowley
Copy link

acowley commented Jan 12, 2020

I encountered the same problem when NixOS unstable upgraded from gcc-8.3.0 to 9.2.0. I incorporated @justxi's suggested change into the build, and everything up through things like pytorch is building again.

@justxi
Copy link
Contributor Author

justxi commented Apr 19, 2020

There is a slightly different solution in https://github.com/ROCmSoftwarePlatform/Tensile/blob/9c9eb4d18cb3183fbac0b67fdfa7ffa8e3a65e88/Tensile/Source/lib/include/Tensile/EmbeddedData.hpp#L105, but it builds on my system. Therefore I close this.

@justxi justxi closed this as completed Apr 19, 2020
mlse-lib-jenkins pushed a commit that referenced this issue Aug 20, 2021
* add parameter documentation for get/set matrix/vector

* add restrictions lda, ldb >= rows
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants