mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GpuOwl (https://www.mersenneforum.org/forumdisplay.php?f=171)
-   -   gpuOwL: an OpenCL program for Mersenne primality testing (https://www.mersenneforum.org/showthread.php?t=22204)

kriesel 2019-04-09 22:57

1 Attachment(s)
[QUOTE=preda;513288]News:
Added arguments for bypassing worktodo.txt
-prp <exponent>
-pm1 <exponent>

Embedded gpuowl.cl in executable, the .cl file next to the executable is not needed anymore.[/QUOTE]Welcome changes.

Are there any changes in the performance compared to v6.2?
Here's a Windows compile.

xx005fs 2019-04-09 23:28

[QUOTE=preda;513288]
Embedded gpuowl.cl in executable, the .cl file next to the executable is not needed anymore.[/QUOTE]


Does shared.h still need to be included in the folder?

preda 2019-04-10 00:29

[QUOTE=xx005fs;513295]Does shared.h still need to be included in the folder?[/QUOTE]

no

preda 2019-04-12 12:17

There was a memory leak in the GCD, triggered when doing P-1. If somebody is doing many P-1, an update is recommended. PRP is not affected.

The symptom is gradually increasing memory use by gpuowl in time. Leak is on the order of 20MB per P-1 test.

preda 2019-04-12 13:26

[QUOTE=preda;513494]There was a memory leak in the GCD, triggered when doing P-1. If somebody is doing many P-1, an update is recommended. PRP is not affected.

The symptom is gradually increasing memory use by gpuowl in time. Leak is on the order of 20MB per P-1 test.[/QUOTE]

Please use v6.5 for the fix (just commited to github)

preda 2019-04-12 14:28

New in 6.5
 
In recent commits (v6.5) I changed a bit how configuration and work files are handled.

A new command-line argument was added: "-dir", which takes a folder name. This allows to specify the working folder of the program. All the files are accessed in that folder, such as: worktodo.txt, gpuowl.log, results.txt, checkpoints.

If -dir is not specified, the current directory is the working dir (i.e. this preserves the old behavior).

A new special file was added, "config.txt". If it exists, it should contain arguments in the same syntax as the command line arguments. These arguments will be parsed and have the same effect as the ones on the command line, except that in case of conflict the command line wins.

Example:
I have two GPUs. I keep two work folders, one per gpu. In each folder I keep a config.txt containing something like:
user preda -cpu r7 -device 1 -B1 300000

I can use a single openowl binary for both folders. I start them with something like:
./openowl -dir gpu0
./openowl -dir gpu1

I can still override what's in config.txt on the command line:
./openowl -dir gpu0 -B1 500000

Let me know what you think. Also, there may be bugs or other problems.

M344587487 2019-04-12 17:13

I think it's great. It'll allow for clean compartmentalisation without having to resort to sym links. The binary builds but seg faults with or without args (except -h) and with or without a config.txt. Could be a fault my end, I'm having to mess about transferring the source manually and the internet is not good enough to clone the entire repo (had to use --depth 1 for just the latest commit).

kriesel 2019-04-12 19:28

V6.5 gpuowl Windows build attempt failed
 
Same method as used for V6.4, produced [CODE]$ make openowl-win
g++ -Wall -O2 -std=c++17 -DREV=\"aa9f555f\" -Wall Pm1Plan.cpp GmpUtil.cpp Worktodo.cpp common.cpp gpuowl.cpp Gpu.cpp clwrap.cpp Task.cpp checkpoint.cpp timeutil.cpp Args.cpp Primes.cpp state.cpp Signal.cpp FFTConfig.cpp -o openowl -lOpenCL -lgmp -pthread -L/opt/rocm/opencl/lib/x86_64 -L/opt/amdgpu-pro/lib/x86_64-linux-gnu -L/c/Windows/System32 -L. -static
gpuowl.cpp: In function 'int main(int, char**)':
gpuowl.cpp:33:57: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(std::filesystem::__cxx11::path)'
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:649:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(__sv_wrapper __svw, const _Alloc& __a)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:649:7: note: candidate expects 2 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:639:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, const _Alloc&)'
basic_string(const _Tp& __t, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:639:2: note: template argument deduction/substitution failed:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:628:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&)'
basic_string(const _Tp& __t, size_type __pos, size_type __n,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:628:2: note: template argument deduction/substitution failed:
gpuowl.cpp:33:57: note: candidate expects 4 arguments, 1 provided
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:614:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&)'
basic_string(_InputIterator __beg, _InputIterator __end,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:614:9: note: template argument deduction/substitution failed:
gpuowl.cpp:33:57: note: candidate expects 3 arguments, 1 provided
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:576:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(basic_string&& __str, const _Alloc& __a)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:576:7: note: candidate expects 2 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:572:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(const basic_string& __str, const _Alloc& __a)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:572:7: note: candidate expects 2 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:568:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:568:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'std::initializer_list<char>'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:541:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(basic_string&& __str) noexcept
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:541:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'std::__cxx11::basic_string<char>&&'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:529:7: note: candidate: 'template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, _CharT, const _Alloc&)'
basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:529:7: note: template argument deduction/substitution failed:
gpuowl.cpp:33:57: note: candidate expects 3 arguments, 1 provided
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:514:7: note: candidate: 'template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&)'
basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:514:7: note: template argument deduction/substitution failed:
gpuowl.cpp:33:55: note: cannot convert 'std::filesystem::current_path()()' (type 'std::filesystem::__cxx11::path') to type 'const char*'
log("Working directory: %s\n", string(current_path()).c_str());
~~~~~~~~~~~~^~
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:499:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const _CharT* __s, size_type __n,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:499:7: note: candidate expects 3 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:481:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const basic_string& __str, size_type __pos,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:481:7: note: candidate expects 4 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:465:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const basic_string& __str, size_type __pos,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:465:7: note: candidate expects 3 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:450:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const basic_string& __str, size_type __pos,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:450:7: note: candidate expects 3 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:437:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(const basic_string& __str)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:437:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::__cxx11::basic_string<char>&'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:429:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:429:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::allocator<char>&'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:420:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string()
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:420:7: note: candidate expects 0 arguments, 1 provided
make: *** [Makefile:14: openowl-win] Error 1
[/CODE]

SELROC 2019-04-13 05:14

[QUOTE=kriesel;513543]Same method as used for V6.4, produced [CODE]$ make openowl-win
g++ -Wall -O2 -std=c++17 -DREV=\"aa9f555f\" -Wall Pm1Plan.cpp GmpUtil.cpp Worktodo.cpp common.cpp gpuowl.cpp Gpu.cpp clwrap.cpp Task.cpp checkpoint.cpp timeutil.cpp Args.cpp Primes.cpp state.cpp Signal.cpp FFTConfig.cpp -o openowl -lOpenCL -lgmp -pthread -L/opt/rocm/opencl/lib/x86_64 -L/opt/amdgpu-pro/lib/x86_64-linux-gnu -L/c/Windows/System32 -L. -static
gpuowl.cpp: In function 'int main(int, char**)':
gpuowl.cpp:33:57: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(std::filesystem::__cxx11::path)'
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:649:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(__sv_wrapper __svw, const _Alloc& __a)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:649:7: note: candidate expects 2 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:639:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, const _Alloc&)'
basic_string(const _Tp& __t, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:639:2: note: template argument deduction/substitution failed:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:628:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&)'
basic_string(const _Tp& __t, size_type __pos, size_type __n,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:628:2: note: template argument deduction/substitution failed:
gpuowl.cpp:33:57: note: candidate expects 4 arguments, 1 provided
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:614:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&)'
basic_string(_InputIterator __beg, _InputIterator __end,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:614:9: note: template argument deduction/substitution failed:
gpuowl.cpp:33:57: note: candidate expects 3 arguments, 1 provided
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:576:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(basic_string&& __str, const _Alloc& __a)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:576:7: note: candidate expects 2 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:572:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(const basic_string& __str, const _Alloc& __a)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:572:7: note: candidate expects 2 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:568:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:568:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'std::initializer_list<char>'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:541:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(basic_string&& __str) noexcept
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:541:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'std::__cxx11::basic_string<char>&&'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:529:7: note: candidate: 'template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, _CharT, const _Alloc&)'
basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:529:7: note: template argument deduction/substitution failed:
gpuowl.cpp:33:57: note: candidate expects 3 arguments, 1 provided
log("Working directory: %s\n", string(current_path()).c_str());
^
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:514:7: note: candidate: 'template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&)'
basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:514:7: note: template argument deduction/substitution failed:
gpuowl.cpp:33:55: note: cannot convert 'std::filesystem::current_path()()' (type 'std::filesystem::__cxx11::path') to type 'const char*'
log("Working directory: %s\n", string(current_path()).c_str());
~~~~~~~~~~~~^~
In file included from C:/msys64/mingw64/include/c++/8.2.0/string:52,
from clwrap.h:8,
from Args.h:6,
from gpuowl.cpp:3:
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:499:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const _CharT* __s, size_type __n,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:499:7: note: candidate expects 3 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:481:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const basic_string& __str, size_type __pos,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:481:7: note: candidate expects 4 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:465:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const basic_string& __str, size_type __pos,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:465:7: note: candidate expects 3 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:450:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long long unsigned int]'
basic_string(const basic_string& __str, size_type __pos,
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:450:7: note: candidate expects 3 arguments, 1 provided
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:437:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(const basic_string& __str)
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:437:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::__cxx11::basic_string<char>&'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:429:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:429:7: note: no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::allocator<char>&'
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:420:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
basic_string()
^~~~~~~~~~~~
C:/msys64/mingw64/include/c++/8.2.0/bits/basic_string.h:420:7: note: candidate expects 0 arguments, 1 provided
make: *** [Makefile:14: openowl-win] Error 1
[/CODE][/QUOTE]




[url]https://github.com/preda/gpuowl/pull/41[/url]

preda 2019-04-13 05:50

[QUOTE=M344587487;513520]I think it's great. It'll allow for clean compartmentalisation without having to resort to sym links. The binary builds but seg faults with or without args (except -h) and with or without a config.txt. Could be a fault my end, I'm having to mess about transferring the source manually and the internet is not good enough to clone the entire repo (had to use --depth 1 for just the latest commit).[/QUOTE]

This is the segfault, has been reported but no diagnosis yet: [url]https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90050[/url]

I did work-around that problem by compiling with gcc-9, which is available on ubuntu 19.04 with "sudo apt install g++-9"

I still don't understand how a problem so severe is in the wild like that. If more people hit it, I'll probably try to change the implementation to avoid using filesystem::path, although that's convenient.

SELROC 2019-04-13 05:58

[QUOTE=preda;513581]This is the segfault, has been reported but no diagnosis yet: [URL]https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90050[/URL]

I did work-around that problem by compiling with gcc-9, which is available on ubuntu 19.04 with "sudo apt install g++-9"

I still don't understand how a problem so severe is in the wild like that. If more people hit it, I'll probably try to change the implementation to avoid using filesystem::path, although that's convenient.[/QUOTE]


I have attempted to reproduce the segfault without success. I have fixed the Makefile by adding -lstdc++fs , the pull request is waiting.


All times are UTC. The time now is 23:13.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.