Binomial_CrossEnthophy
fixed rowwise/colswise mean/sum and implemented binomial_corssentrhopy. Next up is regression.
This commit is contained in:
@@ -39,8 +39,8 @@ events:
|
|||||||
checks:
|
checks:
|
||||||
- "Detecting CXX compiler ABI info"
|
- "Detecting CXX compiler ABI info"
|
||||||
directories:
|
directories:
|
||||||
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn"
|
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C"
|
||||||
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn"
|
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: ""
|
CMAKE_CXX_FLAGS: ""
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
||||||
@@ -49,13 +49,13 @@ events:
|
|||||||
variable: "CMAKE_CXX_ABI_COMPILED"
|
variable: "CMAKE_CXX_ABI_COMPILED"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'
|
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
|
||||||
|
|
||||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a2c08/fast
|
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_21458/fast
|
||||||
/usr/bin/gmake -f CMakeFiles/cmTC_a2c08.dir/build.make CMakeFiles/cmTC_a2c08.dir/build
|
/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build
|
||||||
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'
|
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
|
||||||
Building CXX object CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o
|
Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o
|
||||||
/usr/bin/c++ -v -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp
|
/usr/bin/c++ -v -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
||||||
@@ -65,8 +65,8 @@ events:
|
|||||||
Thread model: posix
|
Thread model: posix
|
||||||
Supported LTO compression algorithms: zlib zstd
|
Supported LTO compression algorithms: zlib zstd
|
||||||
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
||||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/'
|
||||||
/usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_a2c08.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc5fTyjy.s
|
/usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_21458.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccuSiKHJ.s
|
||||||
GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)
|
GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)
|
||||||
compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP
|
compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP
|
||||||
|
|
||||||
@@ -87,15 +87,15 @@ events:
|
|||||||
/usr/include
|
/usr/include
|
||||||
End of search list.
|
End of search list.
|
||||||
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
||||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/'
|
||||||
as -v --64 -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc5fTyjy.s
|
as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.s
|
||||||
GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
|
GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
|
||||||
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
||||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
||||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.'
|
||||||
Linking CXX executable cmTC_a2c08
|
Linking CXX executable cmTC_21458
|
||||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2c08.dir/link.txt --verbose=1
|
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1
|
||||||
/usr/bin/c++ -v CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a2c08
|
/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
|
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
|
||||||
@@ -108,10 +108,10 @@ events:
|
|||||||
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
||||||
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
||||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
||||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.'
|
||||||
/usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4LTvwQ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_a2c08 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o
|
/usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccR4K2gF.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_21458 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o
|
||||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.'
|
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.'
|
||||||
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'
|
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@@ -151,13 +151,13 @@ events:
|
|||||||
message: |
|
message: |
|
||||||
Parsed CXX implicit link information:
|
Parsed CXX implicit link information:
|
||||||
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn']
|
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a2c08/fast]
|
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_21458/fast]
|
||||||
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_a2c08.dir/build.make CMakeFiles/cmTC_a2c08.dir/build]
|
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build]
|
||||||
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn']
|
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C']
|
||||||
ignore line: [Building CXX object CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o]
|
ignore line: [Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o]
|
||||||
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp]
|
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
||||||
@@ -167,8 +167,8 @@ events:
|
|||||||
ignore line: [Thread model: posix]
|
ignore line: [Thread model: posix]
|
||||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||||
ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/']
|
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/']
|
||||||
ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_a2c08.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc5fTyjy.s]
|
ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_21458.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccuSiKHJ.s]
|
||||||
ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)]
|
ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)]
|
||||||
ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP]
|
ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP]
|
||||||
ignore line: []
|
ignore line: []
|
||||||
@@ -189,15 +189,15 @@ events:
|
|||||||
ignore line: [ /usr/include]
|
ignore line: [ /usr/include]
|
||||||
ignore line: [End of search list.]
|
ignore line: [End of search list.]
|
||||||
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/']
|
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/']
|
||||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc5fTyjy.s]
|
ignore line: [ as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.s]
|
||||||
ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
|
ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
|
||||||
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
||||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.']
|
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.']
|
||||||
ignore line: [Linking CXX executable cmTC_a2c08]
|
ignore line: [Linking CXX executable cmTC_21458]
|
||||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2c08.dir/link.txt --verbose=1]
|
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1]
|
||||||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a2c08 ]
|
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458 ]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
|
ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
|
||||||
@@ -210,13 +210,13 @@ events:
|
|||||||
ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
||||||
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
||||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.']
|
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.']
|
||||||
link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4LTvwQ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_a2c08 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
|
link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccR4K2gF.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_21458 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
|
||||||
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
|
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
|
||||||
arg [-plugin] ==> ignore
|
arg [-plugin] ==> ignore
|
||||||
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore
|
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore
|
||||||
arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
|
arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
|
||||||
arg [-plugin-opt=-fresolution=/tmp/cc4LTvwQ.res] ==> ignore
|
arg [-plugin-opt=-fresolution=/tmp/ccR4K2gF.res] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lc] ==> ignore
|
arg [-plugin-opt=-pass-through=-lc] ==> ignore
|
||||||
@@ -234,7 +234,7 @@ events:
|
|||||||
arg [-znow] ==> ignore
|
arg [-znow] ==> ignore
|
||||||
arg [-zrelro] ==> ignore
|
arg [-zrelro] ==> ignore
|
||||||
arg [-o] ==> ignore
|
arg [-o] ==> ignore
|
||||||
arg [cmTC_a2c08] ==> ignore
|
arg [cmTC_21458] ==> ignore
|
||||||
arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o]
|
arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o]
|
||||||
arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o]
|
arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o]
|
||||||
arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
|
arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
|
||||||
@@ -246,7 +246,7 @@ events:
|
|||||||
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
||||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
|
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
|
||||||
arg [CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
|
arg [CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
|
||||||
arg [-lstdc++] ==> lib [stdc++]
|
arg [-lstdc++] ==> lib [stdc++]
|
||||||
arg [-lm] ==> lib [m]
|
arg [-lm] ==> lib [m]
|
||||||
arg [-lgcc_s] ==> lib [gcc_s]
|
arg [-lgcc_s] ==> lib [gcc_s]
|
||||||
@@ -281,8 +281,8 @@ events:
|
|||||||
- "CMakeLists.txt:8 (find_package)"
|
- "CMakeLists.txt:8 (find_package)"
|
||||||
description: "Detecting CXX OpenMP compiler info"
|
description: "Detecting CXX OpenMP compiler info"
|
||||||
directories:
|
directories:
|
||||||
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu"
|
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS"
|
||||||
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu"
|
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: ""
|
CMAKE_CXX_FLAGS: ""
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
||||||
@@ -291,13 +291,13 @@ events:
|
|||||||
variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp"
|
variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'
|
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
|
||||||
|
|
||||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ff875/fast
|
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast
|
||||||
/usr/bin/gmake -f CMakeFiles/cmTC_ff875.dir/build.make CMakeFiles/cmTC_ff875.dir/build
|
/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build
|
||||||
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'
|
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
|
||||||
Building CXX object CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o
|
Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o
|
||||||
/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp
|
/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
|
||||||
@@ -307,8 +307,8 @@ events:
|
|||||||
Thread model: posix
|
Thread model: posix
|
||||||
Supported LTO compression algorithms: zlib zstd
|
Supported LTO compression algorithms: zlib zstd
|
||||||
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)
|
||||||
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/'
|
||||||
/usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_ff875.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccVR5Lll.s
|
/usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_b23e5.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccpB51rF.s
|
||||||
GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)
|
GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)
|
||||||
compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP
|
compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP
|
||||||
|
|
||||||
@@ -329,15 +329,15 @@ events:
|
|||||||
/usr/include
|
/usr/include
|
||||||
End of search list.
|
End of search list.
|
||||||
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
Compiler executable checksum: 7896445e4990772fdae9dc0659a99266
|
||||||
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/'
|
||||||
as -v --64 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o /tmp/ccVR5Lll.s
|
as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.s
|
||||||
GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
|
GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
|
||||||
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
||||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
||||||
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.'
|
||||||
Linking CXX executable cmTC_ff875
|
Linking CXX executable cmTC_b23e5
|
||||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff875.dir/link.txt --verbose=1
|
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1
|
||||||
/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -o cmTC_ff875 -v
|
/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -v
|
||||||
Using built-in specs.
|
Using built-in specs.
|
||||||
COLLECT_GCC=/usr/bin/c++
|
COLLECT_GCC=/usr/bin/c++
|
||||||
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
|
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
|
||||||
@@ -351,10 +351,10 @@ events:
|
|||||||
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
|
||||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
|
||||||
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec
|
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec
|
||||||
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.'
|
||||||
/usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchSaPDX.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_ff875 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o
|
/usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cczYiwNl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b23e5 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o
|
||||||
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.'
|
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.'
|
||||||
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'
|
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
-
|
-
|
||||||
@@ -366,13 +366,13 @@ events:
|
|||||||
message: |
|
message: |
|
||||||
Parsed CXX OpenMP implicit link information from above output:
|
Parsed CXX OpenMP implicit link information from above output:
|
||||||
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||||
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu']
|
ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS']
|
||||||
ignore line: []
|
ignore line: []
|
||||||
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ff875/fast]
|
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast]
|
||||||
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_ff875.dir/build.make CMakeFiles/cmTC_ff875.dir/build]
|
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build]
|
||||||
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu']
|
ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS']
|
||||||
ignore line: [Building CXX object CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o]
|
ignore line: [Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o]
|
||||||
ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp]
|
ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
|
||||||
@@ -382,8 +382,8 @@ events:
|
|||||||
ignore line: [Thread model: posix]
|
ignore line: [Thread model: posix]
|
||||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||||
ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/']
|
||||||
ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_ff875.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccVR5Lll.s]
|
ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_b23e5.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccpB51rF.s]
|
||||||
ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)]
|
ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)]
|
||||||
ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP]
|
ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP]
|
||||||
ignore line: []
|
ignore line: []
|
||||||
@@ -404,15 +404,15 @@ events:
|
|||||||
ignore line: [ /usr/include]
|
ignore line: [ /usr/include]
|
||||||
ignore line: [End of search list.]
|
ignore line: [End of search list.]
|
||||||
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/']
|
||||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o /tmp/ccVR5Lll.s]
|
ignore line: [ as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.s]
|
||||||
ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
|
ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
|
||||||
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
||||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.']
|
||||||
ignore line: [Linking CXX executable cmTC_ff875]
|
ignore line: [Linking CXX executable cmTC_b23e5]
|
||||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff875.dir/link.txt --verbose=1]
|
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1]
|
||||||
ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -o cmTC_ff875 -v ]
|
ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -v ]
|
||||||
ignore line: [Using built-in specs.]
|
ignore line: [Using built-in specs.]
|
||||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
|
ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
|
||||||
@@ -426,13 +426,13 @@ events:
|
|||||||
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
|
||||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
|
||||||
ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec]
|
ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec]
|
||||||
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.']
|
ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.']
|
||||||
link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchSaPDX.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_ff875 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o]
|
link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cczYiwNl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b23e5 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o]
|
||||||
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
|
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
|
||||||
arg [-plugin] ==> ignore
|
arg [-plugin] ==> ignore
|
||||||
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore
|
arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore
|
||||||
arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
|
arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
|
||||||
arg [-plugin-opt=-fresolution=/tmp/cchSaPDX.res] ==> ignore
|
arg [-plugin-opt=-fresolution=/tmp/cczYiwNl.res] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||||
arg [-plugin-opt=-pass-through=-lpthread] ==> ignore
|
arg [-plugin-opt=-pass-through=-lpthread] ==> ignore
|
||||||
@@ -451,7 +451,7 @@ events:
|
|||||||
arg [-znow] ==> ignore
|
arg [-znow] ==> ignore
|
||||||
arg [-zrelro] ==> ignore
|
arg [-zrelro] ==> ignore
|
||||||
arg [-o] ==> ignore
|
arg [-o] ==> ignore
|
||||||
arg [cmTC_ff875] ==> ignore
|
arg [cmTC_b23e5] ==> ignore
|
||||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13]
|
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13]
|
||||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu]
|
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu]
|
||||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib]
|
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib]
|
||||||
@@ -460,7 +460,7 @@ events:
|
|||||||
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
||||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
|
arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
|
||||||
arg [CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o] ==> ignore
|
arg [CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o] ==> ignore
|
||||||
arg [-lstdc++] ==> lib [stdc++]
|
arg [-lstdc++] ==> lib [stdc++]
|
||||||
arg [-lm] ==> lib [m]
|
arg [-lm] ==> lib [m]
|
||||||
arg [-lgomp] ==> lib [gomp]
|
arg [-lgomp] ==> lib [gomp]
|
||||||
@@ -492,8 +492,8 @@ events:
|
|||||||
- "CMakeLists.txt:8 (find_package)"
|
- "CMakeLists.txt:8 (find_package)"
|
||||||
description: "Detecting CXX OpenMP version"
|
description: "Detecting CXX OpenMP version"
|
||||||
directories:
|
directories:
|
||||||
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst"
|
source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd"
|
||||||
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst"
|
binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd"
|
||||||
cmakeVariables:
|
cmakeVariables:
|
||||||
CMAKE_CXX_FLAGS: ""
|
CMAKE_CXX_FLAGS: ""
|
||||||
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
CMAKE_CXX_FLAGS_DEBUG: "-g"
|
||||||
@@ -502,17 +502,17 @@ events:
|
|||||||
variable: "OpenMP_SPECTEST_CXX_"
|
variable: "OpenMP_SPECTEST_CXX_"
|
||||||
cached: true
|
cached: true
|
||||||
stdout: |
|
stdout: |
|
||||||
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst'
|
Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
|
||||||
|
|
||||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9bda3/fast
|
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_d43db/fast
|
||||||
/usr/bin/gmake -f CMakeFiles/cmTC_9bda3.dir/build.make CMakeFiles/cmTC_9bda3.dir/build
|
/usr/bin/gmake -f CMakeFiles/cmTC_d43db.dir/build.make CMakeFiles/cmTC_d43db.dir/build
|
||||||
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst'
|
gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
|
||||||
Building CXX object CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o
|
Building CXX object CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o
|
||||||
/usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst/OpenMPCheckVersion.cpp
|
/usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd/OpenMPCheckVersion.cpp
|
||||||
Linking CXX executable cmTC_9bda3
|
Linking CXX executable cmTC_d43db
|
||||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9bda3.dir/link.txt --verbose=1
|
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d43db.dir/link.txt --verbose=1
|
||||||
/usr/bin/c++ -fopenmp CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o -o cmTC_9bda3
|
/usr/bin/c++ -fopenmp CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -o cmTC_d43db
|
||||||
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst'
|
gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd'
|
||||||
|
|
||||||
exitCode: 0
|
exitCode: 0
|
||||||
...
|
...
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -198,6 +198,8 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
|
|||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/argmax_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/argmax_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/argmin.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/argmin.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/argmin_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/argmin_serial.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/binary_threshold.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/binary_threshold_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/clip.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/clip.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/detail/clip_serial.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/detail/clip_serial.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/./numerics/div.h \
|
/home/atlas/Documents/Git/Flux/include/./numerics/div.h \
|
||||||
@@ -263,6 +265,8 @@ examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o: \
|
|||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_CategoricalCrossentrophy.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/activation_functions/Activation_Sigmoid.h \
|
||||||
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_SGD.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_SGD.h \
|
||||||
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adagrad.h \
|
/home/atlas/Documents/Git/Flux/include/modules/neural_networks/optimizers/Optimizer_Adagrad.h \
|
||||||
/usr/include/c++/13/math.h \
|
/usr/include/c++/13/math.h \
|
||||||
|
|||||||
+233
@@ -0,0 +1,233 @@
|
|||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/utils.h"
|
||||||
|
#include "numerics/numerics.h"
|
||||||
|
#include "decomp/decomp.h"
|
||||||
|
|
||||||
|
#include "modules/neural_networks/neural_networks.h"
|
||||||
|
#include "random/random.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//#include <iostream>
|
||||||
|
//#include <stdexcept>
|
||||||
|
//#include <chrono>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
uint64_t number_of_classes = 3;
|
||||||
|
uint64_t number_of_samples = 150;
|
||||||
|
uint64_t number_of_epochs = 500;
|
||||||
|
|
||||||
|
utils::Mf X;
|
||||||
|
utils::Mf X_test;
|
||||||
|
utils::Matrix<int64_t> y;
|
||||||
|
utils::Matrix<int64_t> y_test;
|
||||||
|
float data_loss;
|
||||||
|
float regularization_loss;
|
||||||
|
float loss;
|
||||||
|
float accuracy;
|
||||||
|
|
||||||
|
utils::Vector<uint64_t> class_targets;
|
||||||
|
utils::Vector<uint64_t> predections;
|
||||||
|
|
||||||
|
|
||||||
|
// Create dataset
|
||||||
|
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
|
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
|
|
||||||
|
// Create Dense layer with 2 input featues and 3 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense1(
|
||||||
|
2, 16, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create ReLU activation (to be used with Dense layer)
|
||||||
|
neural_networks::Activation_ReLU<float> activation1;
|
||||||
|
neural_networks::Dropout_Layer<float> dropout1(0.1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Create a second Dense layer with 16 inputs (as we take the vlaues from the last layer)
|
||||||
|
// and 16 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense2(
|
||||||
|
16, 16, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_Softmax<float> activation2;
|
||||||
|
|
||||||
|
|
||||||
|
// Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer)
|
||||||
|
// and 3 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense3(
|
||||||
|
16, 16, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_Sigmoid<float> activation3;
|
||||||
|
|
||||||
|
neural_networks::Dense_Layer<float> dense4(
|
||||||
|
16, number_of_classes, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create a Sfotmax classifier's combined loss and activation
|
||||||
|
neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
|
||||||
|
|
||||||
|
// Create optimizer
|
||||||
|
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
|
||||||
|
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
|
||||||
|
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
|
||||||
|
neural_networks::Optimizer_Adam<float> optimizer(
|
||||||
|
0.05, // Learning-rate
|
||||||
|
5e-5, // Learning-rate decay
|
||||||
|
1e-6, // epsilons
|
||||||
|
0.9, // beta 1
|
||||||
|
0.999 // beta 2
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Train in loop
|
||||||
|
for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){
|
||||||
|
|
||||||
|
// Perform a forward pass of our training data through this layer
|
||||||
|
dense1.forward(X);
|
||||||
|
activation1.forward(dense1.outputs);
|
||||||
|
dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
|
dense2.forward(dropout1.outputs);
|
||||||
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
|
dense3.forward(activation2.outputs);
|
||||||
|
activation3.forward(dense3.outputs);
|
||||||
|
|
||||||
|
dense4.forward(activation3.outputs);
|
||||||
|
|
||||||
|
// Perform a foard pass through the activation/loss function
|
||||||
|
// takes the output of the second dense layer here and returns loss
|
||||||
|
data_loss = loss_activation.forward(dense4.outputs, y);
|
||||||
|
|
||||||
|
// Calculate regularization penalty
|
||||||
|
regularization_loss = loss_activation.loss.regularization_loss(dense1) +
|
||||||
|
loss_activation.loss.regularization_loss(dense2) +
|
||||||
|
loss_activation.loss.regularization_loss(dense3) +
|
||||||
|
loss_activation.loss.regularization_loss(dense4);
|
||||||
|
|
||||||
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
|
// Calculate accuracy from output of activation2 and targets
|
||||||
|
//predections = numerics::matargmax_row <int64_t, float>(loss_activation.outputs);
|
||||||
|
predections = numerics::argmax_rowwise(loss_activation.outputs);
|
||||||
|
|
||||||
|
if (y.cols() > 1){
|
||||||
|
class_targets = numerics::argmax_rowwise(y);
|
||||||
|
}else{
|
||||||
|
class_targets = utils::veccast <uint64_t, int64_t> (y.get_col(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
|
||||||
|
|
||||||
|
|
||||||
|
if (!(epoch%100)){
|
||||||
|
std::cout << "epoch: " << epoch;
|
||||||
|
std::cout << ", acc: " << accuracy;
|
||||||
|
std::cout << ", loss: " << loss;
|
||||||
|
std::cout << ", data_loss: " << data_loss;
|
||||||
|
std::cout << ", regularization_loss: " << regularization_loss;
|
||||||
|
std::cout << ", lr: " << optimizer.current_learning_rate;
|
||||||
|
std::cout << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Backward pass
|
||||||
|
loss_activation.backward(loss_activation.outputs, y);
|
||||||
|
dense4.backward(loss_activation.dinputs);
|
||||||
|
|
||||||
|
activation3.backward(dense4.dinputs);
|
||||||
|
dense3.backward(activation3.dinputs);
|
||||||
|
|
||||||
|
activation2.backward(dense3.dinputs);
|
||||||
|
dense2.backward(activation2.dinputs);
|
||||||
|
|
||||||
|
dropout1.backward(dense2.dinputs);
|
||||||
|
activation1.backward(dropout1.dinputs);
|
||||||
|
dense1.backward(activation1.dinputs);
|
||||||
|
|
||||||
|
|
||||||
|
// Update weights and biases
|
||||||
|
optimizer.pre_update_params();
|
||||||
|
optimizer.update_params(dense1);
|
||||||
|
optimizer.update_params(dense2);
|
||||||
|
optimizer.update_params(dense3);
|
||||||
|
optimizer.update_params(dense4);
|
||||||
|
optimizer.post_update_params();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate the model
|
||||||
|
|
||||||
|
// Create dataset
|
||||||
|
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
|
||||||
|
|
||||||
|
// Perform a forward pass of our training data through this layer
|
||||||
|
dense1.forward(X_test);
|
||||||
|
activation1.forward(dense1.outputs);
|
||||||
|
//dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
|
dense2.forward(activation1.outputs);
|
||||||
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
|
dense3.forward(activation2.outputs);
|
||||||
|
activation3.forward(dense3.outputs);
|
||||||
|
|
||||||
|
dense4.forward(activation3.outputs);
|
||||||
|
|
||||||
|
// Perform a foard pass through the activation/loss function
|
||||||
|
// takes the output of the second dense layer here and returns loss
|
||||||
|
data_loss = loss_activation.forward(dense4.outputs, y_test);
|
||||||
|
|
||||||
|
// Calculate regularization penalty
|
||||||
|
regularization_loss = loss_activation.loss.regularization_loss(dense1) +
|
||||||
|
loss_activation.loss.regularization_loss(dense2) +
|
||||||
|
loss_activation.loss.regularization_loss(dense3) +
|
||||||
|
loss_activation.loss.regularization_loss(dense4);
|
||||||
|
|
||||||
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
|
// Calculate accuracy from output of activation2 and targets
|
||||||
|
predections = numerics::argmax_rowwise(loss_activation.outputs);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (y.cols() > 1){
|
||||||
|
class_targets = numerics::argmax_rowwise(y_test);
|
||||||
|
}else{
|
||||||
|
class_targets = utils::veccast <uint64_t, int64_t> (y_test.get_col(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
|
||||||
|
|
||||||
|
|
||||||
|
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,205 @@
|
|||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/utils.h"
|
||||||
|
#include "numerics/numerics.h"
|
||||||
|
#include "decomp/decomp.h"
|
||||||
|
|
||||||
|
#include "modules/neural_networks/neural_networks.h"
|
||||||
|
#include "random/random.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//#include <iostream>
|
||||||
|
//#include <stdexcept>
|
||||||
|
//#include <chrono>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
uint64_t number_of_classes = 2;
|
||||||
|
uint64_t number_of_samples = 150;
|
||||||
|
uint64_t number_of_epochs = 1000;
|
||||||
|
|
||||||
|
utils::Mf X;
|
||||||
|
utils::Mf X_test;
|
||||||
|
utils::Matrix<int64_t> y;
|
||||||
|
utils::Matrix<int64_t> y_test;
|
||||||
|
float data_loss;
|
||||||
|
float regularization_loss;
|
||||||
|
float loss;
|
||||||
|
float accuracy;
|
||||||
|
|
||||||
|
utils::Vector<uint64_t> class_targets;
|
||||||
|
utils::Vector<float> predictions;
|
||||||
|
|
||||||
|
|
||||||
|
// Create dataset
|
||||||
|
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
|
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
|
|
||||||
|
|
||||||
|
// Create Dense layer with 2 input featues and 3 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense1(
|
||||||
|
2, 16, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create ReLU activation (to be used with Dense layer)
|
||||||
|
neural_networks::Activation_ReLU<float> activation1;
|
||||||
|
neural_networks::Dropout_Layer<float> dropout1(0.1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Create a second Dense layer with 16 inputs (as we take the vlaues from the last layer)
|
||||||
|
// and 16 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense2(
|
||||||
|
16, 16, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_Softmax<float> activation2;
|
||||||
|
|
||||||
|
|
||||||
|
// Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer)
|
||||||
|
// and 3 output values
|
||||||
|
neural_networks::Dense_Layer<float> dense3(
|
||||||
|
16, 1, // input/output
|
||||||
|
0.0f, // weight L1
|
||||||
|
5e-4f, // weight L2
|
||||||
|
0.0f, // bias L1
|
||||||
|
5e-4f // bias L2
|
||||||
|
);
|
||||||
|
neural_networks::Activation_Sigmoid<float> activation3;
|
||||||
|
|
||||||
|
|
||||||
|
// Create a Sfotmax classifier's combined loss and activation
|
||||||
|
//neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
|
||||||
|
neural_networks::Loss_BinaryCrossentropy<float, int64_t> loss_activation;
|
||||||
|
|
||||||
|
// Create optimizer
|
||||||
|
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
|
||||||
|
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
|
||||||
|
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
|
||||||
|
neural_networks::Optimizer_Adam<float> optimizer(
|
||||||
|
0.05, // Learning-rate
|
||||||
|
5e-5, // Learning-rate decay
|
||||||
|
1e-6, // epsilons
|
||||||
|
0.9, // beta 1
|
||||||
|
0.999 // beta 2
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Train in loop
|
||||||
|
for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){
|
||||||
|
|
||||||
|
// Perform a forward pass of our training data through this layer
|
||||||
|
dense1.forward(X);
|
||||||
|
activation1.forward(dense1.outputs);
|
||||||
|
dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
|
dense2.forward(dropout1.outputs);
|
||||||
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
|
dense3.forward(activation2.outputs);
|
||||||
|
activation3.forward(dense3.outputs);
|
||||||
|
|
||||||
|
// Perform a foard pass through the activation/loss function
|
||||||
|
// takes the output of the second dense layer here and returns loss
|
||||||
|
data_loss = loss_activation.calculate(activation3.outputs, y);
|
||||||
|
|
||||||
|
// Calculate regularization penalty
|
||||||
|
regularization_loss = loss_activation.regularization_loss(dense1) +
|
||||||
|
loss_activation.regularization_loss(dense2) +
|
||||||
|
loss_activation.regularization_loss(dense3);
|
||||||
|
|
||||||
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
|
// Calculate accuracy from output of activation3 and targets
|
||||||
|
// Part in the brackets returns a binary mask - array consisting
|
||||||
|
// of True/False values, multiplying it by 1 changes it into array
|
||||||
|
// of 1s and 0s
|
||||||
|
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
|
||||||
|
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y.get_col(0))));
|
||||||
|
|
||||||
|
|
||||||
|
if (!(epoch%100)){
|
||||||
|
|
||||||
|
std::cout << "epoch: " << epoch;
|
||||||
|
std::cout << ", acc: " << accuracy;
|
||||||
|
std::cout << ", loss: " << loss;
|
||||||
|
std::cout << ", data_loss: " << data_loss;
|
||||||
|
std::cout << ", regularization_loss: " << regularization_loss;
|
||||||
|
std::cout << ", lr: " << optimizer.current_learning_rate;
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Backward pass
|
||||||
|
loss_activation.backward(activation3.outputs, y);
|
||||||
|
|
||||||
|
activation3.backward(loss_activation.dinputs);
|
||||||
|
dense3.backward(activation3.dinputs);
|
||||||
|
|
||||||
|
activation2.backward(dense3.dinputs);
|
||||||
|
dense2.backward(activation2.dinputs);
|
||||||
|
|
||||||
|
dropout1.backward(dense2.dinputs);
|
||||||
|
activation1.backward(dropout1.dinputs);
|
||||||
|
dense1.backward(activation1.dinputs);
|
||||||
|
|
||||||
|
// Update weights and biases
|
||||||
|
optimizer.pre_update_params();
|
||||||
|
optimizer.update_params(dense1);
|
||||||
|
optimizer.update_params(dense2);
|
||||||
|
optimizer.update_params(dense3);
|
||||||
|
optimizer.post_update_params();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate the model
|
||||||
|
|
||||||
|
// Create dataset
|
||||||
|
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
|
||||||
|
|
||||||
|
// Perform a forward pass of our training data through this layer
|
||||||
|
dense1.forward(X_test);
|
||||||
|
activation1.forward(dense1.outputs);
|
||||||
|
//dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
|
dense2.forward(activation1.outputs);
|
||||||
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
|
dense3.forward(activation2.outputs);
|
||||||
|
activation3.forward(dense3.outputs);
|
||||||
|
|
||||||
|
// Perform a foard pass through the activation/loss function
|
||||||
|
// takes the output of the second dense layer here and returns loss
|
||||||
|
data_loss = loss_activation.calculate(activation3.outputs, y_test);
|
||||||
|
|
||||||
|
// Calculate regularization penalty
|
||||||
|
regularization_loss = loss_activation.regularization_loss(dense1) +
|
||||||
|
loss_activation.regularization_loss(dense2) +
|
||||||
|
loss_activation.regularization_loss(dense3);
|
||||||
|
|
||||||
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
|
// Calculate accuracy from output of activation2 and targets
|
||||||
|
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
|
||||||
|
|
||||||
|
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y_test.get_col(0))));
|
||||||
|
|
||||||
|
|
||||||
|
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -20,9 +20,9 @@
|
|||||||
int main(int argc, char const *argv[])
|
int main(int argc, char const *argv[])
|
||||||
{
|
{
|
||||||
|
|
||||||
uint64_t number_of_classes = 3;
|
uint64_t number_of_classes = 2;
|
||||||
uint64_t number_of_samples = 1000;
|
uint64_t number_of_samples = 150;
|
||||||
uint64_t number_of_epochs = 500;
|
uint64_t number_of_epochs = 1000;
|
||||||
|
|
||||||
utils::Mf X;
|
utils::Mf X;
|
||||||
utils::Mf X_test;
|
utils::Mf X_test;
|
||||||
@@ -34,13 +34,14 @@ int main(int argc, char const *argv[])
|
|||||||
float accuracy;
|
float accuracy;
|
||||||
|
|
||||||
utils::Vector<uint64_t> class_targets;
|
utils::Vector<uint64_t> class_targets;
|
||||||
utils::Vector<uint64_t> predections;
|
utils::Vector<float> predictions;
|
||||||
|
|
||||||
|
|
||||||
// Create dataset
|
// Create dataset
|
||||||
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
neural_networks::create_spital_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
//neural_networks::create_vertical_data<float, int64_t>(number_of_samples, number_of_classes, X, y);
|
||||||
|
|
||||||
|
|
||||||
// Create Dense layer with 2 input featues and 3 output values
|
// Create Dense layer with 2 input featues and 3 output values
|
||||||
neural_networks::Dense_Layer<float> dense1(
|
neural_networks::Dense_Layer<float> dense1(
|
||||||
2, 16, // input/output
|
2, 16, // input/output
|
||||||
@@ -65,29 +66,31 @@ int main(int argc, char const *argv[])
|
|||||||
0.0f, // bias L1
|
0.0f, // bias L1
|
||||||
5e-4f // bias L2
|
5e-4f // bias L2
|
||||||
);
|
);
|
||||||
// Create Softmax activation (to be used with Dense layer)
|
|
||||||
neural_networks::Activation_Softmax<float> activation2;
|
neural_networks::Activation_Softmax<float> activation2;
|
||||||
|
|
||||||
|
|
||||||
// Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer)
|
// Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer)
|
||||||
// and 3 output values
|
// and 3 output values
|
||||||
neural_networks::Dense_Layer<float> dense3(
|
neural_networks::Dense_Layer<float> dense3(
|
||||||
16, number_of_classes, // input/output
|
16, 1, // input/output
|
||||||
0.0f, // weight L1
|
0.0f, // weight L1
|
||||||
5e-4f, // weight L2
|
5e-4f, // weight L2
|
||||||
0.0f, // bias L1
|
0.0f, // bias L1
|
||||||
5e-4f // bias L2
|
5e-4f // bias L2
|
||||||
);
|
);
|
||||||
|
neural_networks::Activation_Sigmoid<float> activation3;
|
||||||
|
|
||||||
|
|
||||||
// Create a Sfotmax classifier's combined loss and activation
|
// Create a Sfotmax classifier's combined loss and activation
|
||||||
neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
|
//neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy<float, int64_t> loss_activation;
|
||||||
|
neural_networks::Loss_BinaryCrossentropy<float, int64_t> loss_activation;
|
||||||
|
|
||||||
// Create optimizer
|
// Create optimizer
|
||||||
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
|
//neural_networks::Optimizer_SGD<float> optimizer(1, 1e-3, 0.5);
|
||||||
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
|
//neural_networks::Optimizer_Adagrad<float> optimizer(1, 1e-3, 1e-6);
|
||||||
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
|
//neural_networks::Optimizer_RMSprop<float> optimizer(1, 1e-3, 1e-6, 0.9);
|
||||||
neural_networks::Optimizer_Adam<float> optimizer(
|
neural_networks::Optimizer_Adam<float> optimizer(
|
||||||
0.05, // Learning-rate
|
0.05, // Learning-rate
|
||||||
5e-5, // Learning-rate decay
|
5e-5, // Learning-rate decay
|
||||||
1e-6, // epsilons
|
1e-6, // epsilons
|
||||||
0.9, // beta 1
|
0.9, // beta 1
|
||||||
@@ -101,51 +104,36 @@ int main(int argc, char const *argv[])
|
|||||||
|
|
||||||
// Perform a forward pass of our training data through this layer
|
// Perform a forward pass of our training data through this layer
|
||||||
dense1.forward(X);
|
dense1.forward(X);
|
||||||
|
|
||||||
// Perform a forward pass thourgh activation function
|
|
||||||
// takes the output fo the first layer here
|
|
||||||
activation1.forward(dense1.outputs);
|
activation1.forward(dense1.outputs);
|
||||||
dropout1.forward(activation1.outputs);
|
dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
// Perform a forward pass through second Dense layer
|
|
||||||
// takes output of activation function of the first layer as input
|
|
||||||
dense2.forward(dropout1.outputs);
|
dense2.forward(dropout1.outputs);
|
||||||
|
|
||||||
|
|
||||||
// Perform a forward pass thourgh activation function
|
|
||||||
// takes the output fo the first layer here
|
|
||||||
activation2.forward(dense2.outputs);
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
// Perform a forward pass through second Dense layer
|
|
||||||
// takes output of activation function of the first layer as input
|
|
||||||
dense3.forward(activation2.outputs);
|
dense3.forward(activation2.outputs);
|
||||||
|
activation3.forward(dense3.outputs);
|
||||||
|
|
||||||
|
|
||||||
// Perform a foard pass through the activation/loss function
|
// Perform a foard pass through the activation/loss function
|
||||||
// takes the output of the second dense layer here and returns loss
|
// takes the output of the second dense layer here and returns loss
|
||||||
data_loss = loss_activation.forward(dense3.outputs, y);
|
data_loss = loss_activation.calculate(activation3.outputs, y);
|
||||||
|
|
||||||
// Calculate regularization penalty
|
// Calculate regularization penalty
|
||||||
regularization_loss = loss_activation.loss.regularization_loss(dense1) + loss_activation.loss.regularization_loss(dense2) + loss_activation.loss.regularization_loss(dense3);
|
regularization_loss = loss_activation.regularization_loss(dense1) +
|
||||||
|
loss_activation.regularization_loss(dense2) +
|
||||||
|
loss_activation.regularization_loss(dense3);
|
||||||
|
|
||||||
loss = data_loss + regularization_loss;
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
// Calculate accuracy from output of activation2 and targets
|
// Calculate accuracy from output of activation3 and targets
|
||||||
//predections = numerics::matargmax_row <int64_t, float>(loss_activation.outputs);
|
// Part in the brackets returns a binary mask - array consisting
|
||||||
predections = numerics::argmax_rowwise(loss_activation.outputs);
|
// of True/False values, multiplying it by 1 changes it into array
|
||||||
|
// of 1s and 0s
|
||||||
if (y.cols() > 1){
|
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
|
||||||
class_targets = numerics::argmax_rowwise(y);
|
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y.get_col(0))));
|
||||||
}else{
|
|
||||||
class_targets = utils::veccast <uint64_t, int64_t> (y.get_col(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
|
|
||||||
|
|
||||||
|
|
||||||
if (!(epoch%100)){
|
if (!(epoch%100)){
|
||||||
|
|
||||||
std::cout << "epoch: " << epoch;
|
std::cout << "epoch: " << epoch;
|
||||||
std::cout << ", acc: " << accuracy;
|
std::cout << ", acc: " << accuracy;
|
||||||
std::cout << ", loss: " << loss;
|
std::cout << ", loss: " << loss;
|
||||||
@@ -153,18 +141,22 @@ int main(int argc, char const *argv[])
|
|||||||
std::cout << ", regularization_loss: " << regularization_loss;
|
std::cout << ", regularization_loss: " << regularization_loss;
|
||||||
std::cout << ", lr: " << optimizer.current_learning_rate;
|
std::cout << ", lr: " << optimizer.current_learning_rate;
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Backward pass
|
// Backward pass
|
||||||
loss_activation.backward(loss_activation.outputs, y);
|
loss_activation.backward(activation3.outputs, y);
|
||||||
dense3.backward(loss_activation.dinputs);
|
|
||||||
|
activation3.backward(loss_activation.dinputs);
|
||||||
|
dense3.backward(activation3.dinputs);
|
||||||
|
|
||||||
activation2.backward(dense3.dinputs);
|
activation2.backward(dense3.dinputs);
|
||||||
dense2.backward(activation2.dinputs);
|
dense2.backward(activation2.dinputs);
|
||||||
|
|
||||||
dropout1.backward(dense2.dinputs);
|
dropout1.backward(dense2.dinputs);
|
||||||
activation1.backward(dropout1.dinputs);
|
activation1.backward(dropout1.dinputs);
|
||||||
dense1.backward(activation1.dinputs);
|
dense1.backward(activation1.dinputs);
|
||||||
|
|
||||||
|
|
||||||
// Update weights and biases
|
// Update weights and biases
|
||||||
optimizer.pre_update_params();
|
optimizer.pre_update_params();
|
||||||
optimizer.update_params(dense1);
|
optimizer.update_params(dense1);
|
||||||
@@ -179,48 +171,34 @@ int main(int argc, char const *argv[])
|
|||||||
// Create dataset
|
// Create dataset
|
||||||
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
|
neural_networks::create_spital_data<float, int64_t>(100, number_of_classes, X_test, y_test);
|
||||||
|
|
||||||
// Perform a forward pass of our testing data through this layer
|
// Perform a forward pass of our training data through this layer
|
||||||
dense1.forward(X_test);
|
dense1.forward(X_test);
|
||||||
|
|
||||||
|
|
||||||
// Perform a forward pass thourgh activation function
|
|
||||||
// takes the output fo the first layer here
|
|
||||||
activation1.forward(dense1.outputs);
|
activation1.forward(dense1.outputs);
|
||||||
|
//dropout1.forward(activation1.outputs);
|
||||||
|
|
||||||
// Perform a forward pass through second Dense layer
|
|
||||||
// takes output of activation function of the first layer as input
|
|
||||||
dense2.forward(activation1.outputs);
|
dense2.forward(activation1.outputs);
|
||||||
|
|
||||||
// Perform a forward pass thourgh activation function
|
|
||||||
// takes the output fo the first layer here
|
|
||||||
activation2.forward(dense2.outputs);
|
activation2.forward(dense2.outputs);
|
||||||
|
|
||||||
// Perform a forward pass through second Dense layer
|
|
||||||
// takes output of activation function of the first layer as input
|
|
||||||
dense3.forward(activation2.outputs);
|
dense3.forward(activation2.outputs);
|
||||||
|
activation3.forward(dense3.outputs);
|
||||||
|
|
||||||
// Perform a foard pass through the activation/loss function
|
// Perform a foard pass through the activation/loss function
|
||||||
// takes the output of the second dense layer here and returns loss
|
// takes the output of the second dense layer here and returns loss
|
||||||
data_loss = loss_activation.forward(dense3.outputs, y_test);
|
data_loss = loss_activation.calculate(activation3.outputs, y_test);
|
||||||
|
|
||||||
// Calculate regularization penalty
|
// Calculate regularization penalty
|
||||||
regularization_loss = loss_activation.loss.regularization_loss(dense1) + loss_activation.loss.regularization_loss(dense2) + loss_activation.loss.regularization_loss(dense3);
|
regularization_loss = loss_activation.regularization_loss(dense1) +
|
||||||
|
loss_activation.regularization_loss(dense2) +
|
||||||
|
loss_activation.regularization_loss(dense3);
|
||||||
|
|
||||||
loss = data_loss + regularization_loss;
|
loss = data_loss + regularization_loss;
|
||||||
|
|
||||||
// Calculate accuracy from output of activation2 and targets
|
// Calculate accuracy from output of activation2 and targets
|
||||||
predections = numerics::argmax_rowwise(loss_activation.outputs);
|
predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0);
|
||||||
|
|
||||||
if (y.cols() > 1){
|
accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast<float, int64_t>(y_test.get_col(0))));
|
||||||
class_targets = numerics::argmax_rowwise(y_test);
|
|
||||||
}else{
|
|
||||||
class_targets = utils::veccast <uint64_t, int64_t> (y_test.get_col(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
accuracy = numerics::mean( utils::veccast<float, uint64_t> (numerics::equal_elementwise_serial(predections, class_targets)));
|
|
||||||
|
|
||||||
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
|
std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
#include "numerics/neg.h"
|
||||||
|
#include "numerics/exp.h"
|
||||||
|
#include "numerics/add.h"
|
||||||
|
#include "numerics/div.h"
|
||||||
|
#include "numerics/sub.h"
|
||||||
|
#include "numerics/mul.h"
|
||||||
|
|
||||||
|
namespace neural_networks{
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct Activation_Sigmoid{
|
||||||
|
|
||||||
|
utils::Matrix<T> _inputs;
|
||||||
|
utils::Matrix<T> outputs;
|
||||||
|
|
||||||
|
utils::Matrix<T> dinputs;
|
||||||
|
|
||||||
|
void forward(const utils::Matrix<T>& inputs){
|
||||||
|
_inputs = inputs;
|
||||||
|
|
||||||
|
outputs = numerics::neg(inputs);
|
||||||
|
outputs = numerics::exp(outputs);
|
||||||
|
outputs = numerics::add(outputs, T{1});
|
||||||
|
outputs = numerics::div(T{1}, outputs);
|
||||||
|
}
|
||||||
|
void backward(const utils::Matrix<T>& dvalues){
|
||||||
|
|
||||||
|
dinputs = numerics::sub(T{1}, outputs);
|
||||||
|
dinputs = numerics::mul(dvalues, dinputs);
|
||||||
|
dinputs = numerics::mul(dinputs, outputs);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace neural_networks
|
||||||
@@ -29,7 +29,7 @@ namespace neural_networks{
|
|||||||
utils::Matrix<T> exp_values = numerics::exp(numerics::sub_colwise(inputs, numerics::max_rowwise(inputs)));
|
utils::Matrix<T> exp_values = numerics::exp(numerics::sub_colwise(inputs, numerics::max_rowwise(inputs)));
|
||||||
|
|
||||||
// Normalize them for each sample
|
// Normalize them for each sample
|
||||||
utils::Matrix<T> probabilities = numerics::div_colwise(exp_values, numerics::sum_colwise(exp_values));
|
utils::Matrix<T> probabilities = numerics::div_colwise(exp_values, numerics::sum_rowwise(exp_values));
|
||||||
outputs = probabilities;
|
outputs = probabilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ namespace neural_networks{
|
|||||||
void backward(const utils::Matrix<T>& dvalues){
|
void backward(const utils::Matrix<T>& dvalues){
|
||||||
// Gradients on parameters
|
// Gradients on parameters
|
||||||
dweights = numerics::matmul(numerics::transpose(_inputs), dvalues);
|
dweights = numerics::matmul(numerics::transpose(_inputs), dvalues);
|
||||||
dbiases = numerics::sum_rowwise(dvalues);
|
dbiases = numerics::sum_colwise(dvalues);
|
||||||
|
|
||||||
|
|
||||||
// Gradients on regularization
|
// Gradients on regularization
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/omp_config.h"
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
#include "utils/matcast.h"
|
||||||
|
|
||||||
|
#include "numerics/clip.h"
|
||||||
|
#include "numerics/log.h"
|
||||||
|
#include "numerics/sub.h"
|
||||||
|
|
||||||
|
#include "Loss.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace neural_networks{
|
||||||
|
|
||||||
|
template <typename Td, typename Ti>
|
||||||
|
struct Loss_BinaryCrossentropy : Loss<Td, Ti> {
|
||||||
|
|
||||||
|
utils::Matrix<Td> dinputs;
|
||||||
|
utils::Matrix<Td> y_true;
|
||||||
|
|
||||||
|
|
||||||
|
utils::Vector<Td> forward(const utils::Matrix<Td>& y_pred, const utils::Matrix<Ti>& y_true) override{
|
||||||
|
|
||||||
|
this->y_true = utils::matcast<Td, Ti>(y_true);
|
||||||
|
|
||||||
|
// Clip daa to prevent division by 0
|
||||||
|
// Clip both sides not to drag mean towards any value
|
||||||
|
utils::Matrix<Td> y_pred_clipped = numerics::clip(y_pred, Td{1e-7}, Td{1.0} - Td{1e-7});
|
||||||
|
|
||||||
|
// Calculate sample-wise loss
|
||||||
|
utils::Matrix<Td> sample_losses_temp = numerics::log(numerics::sub(Td{1}, y_pred_clipped));
|
||||||
|
sample_losses_temp = numerics::mul(sample_losses_temp, numerics::sub(Td{1}, this->y_true));
|
||||||
|
sample_losses_temp = numerics::add(sample_losses_temp, numerics::mul(this->y_true, numerics::log(y_pred_clipped)));
|
||||||
|
sample_losses_temp = numerics::neg(sample_losses_temp);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
utils::Vector<Td> sample_losses = numerics::mean_rowwise(sample_losses_temp);
|
||||||
|
|
||||||
|
// Return losses
|
||||||
|
return sample_losses;
|
||||||
|
}
|
||||||
|
|
||||||
|
void backward(const utils::Matrix<Td>& dvalues, const utils::Matrix<Ti>& y_true) override{
|
||||||
|
|
||||||
|
/*std::cout << "BCE backward y_true: "
|
||||||
|
<< y_true.rows() << " x " << y_true.cols()
|
||||||
|
<< std::endl;*/
|
||||||
|
|
||||||
|
|
||||||
|
// Number of samples
|
||||||
|
const Td samples = static_cast<Td> (this->y_true.rows());
|
||||||
|
// Number of outputs in every sample
|
||||||
|
const Td outputs = static_cast<Td> (dvalues.cols());
|
||||||
|
|
||||||
|
// Clip data to prevent division by 0
|
||||||
|
// Clip both sides to not drag mean towards any value
|
||||||
|
utils::Matrix<Td> clipped_dvalues = numerics::clip(dvalues, Td{1e-7}, Td{1.0} - Td{1e-7});
|
||||||
|
|
||||||
|
|
||||||
|
// Calculate gradient
|
||||||
|
dinputs = numerics::div(numerics::neg(numerics::sub(numerics::div(this->y_true, clipped_dvalues), numerics::div(numerics::sub(Td{1}, this->y_true), numerics::sub(Td{1}, clipped_dvalues)))), outputs);
|
||||||
|
// Normalize gradients
|
||||||
|
dinputs = numerics::div(dinputs, samples);
|
||||||
|
|
||||||
|
/*
|
||||||
|
std::cout << "BCE backward dinputs: "
|
||||||
|
<< dinputs.rows() << " x " << dinputs.cols()
|
||||||
|
<< std::endl;*/
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace neural_networks
|
||||||
@@ -12,10 +12,12 @@
|
|||||||
#include "activation_functions/Activation_ReLU.h"
|
#include "activation_functions/Activation_ReLU.h"
|
||||||
#include "activation_functions/Activation_Softmax.h"
|
#include "activation_functions/Activation_Softmax.h"
|
||||||
#include "activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h"
|
#include "activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h"
|
||||||
|
#include "activation_functions/Activation_Sigmoid.h"
|
||||||
|
|
||||||
|
|
||||||
#include "loss/Loss.h" // Base
|
#include "loss/Loss.h" // Base
|
||||||
#include "loss/Loss_CategoricalCrossentrophy.h"
|
#include "loss/Loss_CategoricalCrossentrophy.h"
|
||||||
|
#include "loss/Loss_BinaryCrossentropy.h"
|
||||||
|
|
||||||
|
|
||||||
#include "optimizers/Optimizer_SGD.h"
|
#include "optimizers/Optimizer_SGD.h"
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/omp_config.h"
|
||||||
|
#include "detail/binary_threshold_serial.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace numerics{
|
||||||
|
|
||||||
|
// ---------------- Elementwise ----------------
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_than(T& a, const T c) {
|
||||||
|
detail::inplace_greater_than_serial(a, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline T greater_than(const T a, const T c) {
|
||||||
|
T out = a;
|
||||||
|
inplace_greater_than(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_than(utils::Vector<T>& v, const T c) {
|
||||||
|
detail::inplace_greater_than_serial(v, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> greater_than(const utils::Vector<T>& v, const T c) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_greater_than(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_greater_than(utils::Matrix<T>& A, const T c) {
|
||||||
|
detail::inplace_greater_than_serial(A, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> greater_than(const utils::Matrix<T>& A, const T c) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_greater_than(out, c);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint> //uint64_t
|
||||||
|
#include <cmath> // std::abs
|
||||||
|
|
||||||
|
#include "utils/vector.h"
|
||||||
|
#include "utils/matrix.h"
|
||||||
|
|
||||||
|
namespace numerics::detail{
|
||||||
|
|
||||||
|
|
||||||
|
// ---------------- Elemenwise ----------------
|
||||||
|
template <typename T>
|
||||||
|
void inplace_greater_than_serial(T& a, const T c) {
|
||||||
|
if (a > c){
|
||||||
|
a = T{1};
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
a = T{0};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_greater_than_serial(utils::Vector<T>& v, const T c) {
|
||||||
|
for (uint64_t i = 0; i < v.size(); ++i){
|
||||||
|
inplace_greater_than_serial(v[i], c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_greater_than_serial(utils::Matrix<T>& A, const T c) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
inplace_greater_than_serial(A(i,j), c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace numerics
|
||||||
|
|
||||||
@@ -20,12 +20,31 @@ namespace numerics::detail{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_div_scalar_serial(const T c, utils::Matrix<T>& A) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
A(i,j) = c / A(i,j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void inplace_div_scalar_serial(utils::Vector<T>& v, const T c) {
|
void inplace_div_scalar_serial(utils::Vector<T>& v, const T c) {
|
||||||
for (uint64_t i = 0; i < v.size(); ++i){
|
for (uint64_t i = 0; i < v.size(); ++i){
|
||||||
v[i] /= c;
|
v[i] /= c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_div_scalar_serial(const T c, utils::Vector<T>& v) {
|
||||||
|
for (uint64_t i = 0; i < v.size(); ++i){
|
||||||
|
v[i] = c / v[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------- Elemenwise ----------------
|
// ---------------- Elemenwise ----------------
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void inplace_div_elementwise_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
void inplace_div_elementwise_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
|||||||
@@ -20,12 +20,33 @@ namespace numerics::detail{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_sub_scalar_serial(const T c, utils::Matrix<T>& A) {
|
||||||
|
const uint64_t rows = A.rows();
|
||||||
|
const uint64_t cols = A.cols();
|
||||||
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
|
A(i,j) = c - A(i,j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void inplace_sub_scalar_serial(utils::Vector<T>& v, const T c) {
|
void inplace_sub_scalar_serial(utils::Vector<T>& v, const T c) {
|
||||||
for (uint64_t i = 0; i < v.size(); ++i){
|
for (uint64_t i = 0; i < v.size(); ++i){
|
||||||
v[i] -= c;
|
v[i] -= c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void inplace_sub_scalar_serial(const T c, utils::Vector<T>& v) {
|
||||||
|
for (uint64_t i = 0; i < v.size(); ++i){
|
||||||
|
v[i] = c - v[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------- Elemenwise ----------------
|
// ---------------- Elemenwise ----------------
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void inplace_sub_elementwise_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
void inplace_sub_elementwise_serial(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ namespace numerics::detail{
|
|||||||
utils::Vector<T> sum_rowwise_serial(const utils::Matrix<T>& A) {
|
utils::Vector<T> sum_rowwise_serial(const utils::Matrix<T>& A) {
|
||||||
const uint64_t rows = A.rows();
|
const uint64_t rows = A.rows();
|
||||||
const uint64_t cols = A.cols();
|
const uint64_t cols = A.cols();
|
||||||
utils::Vector<T> sum(cols, T{0});
|
utils::Vector<T> sum(rows, T{0});
|
||||||
for (uint64_t i = 0; i < rows; ++i){
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
for (uint64_t j = 0; j < cols; ++j){
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
sum[j] += A(i,j);
|
sum[i] += A(i,j);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
@@ -51,10 +51,10 @@ namespace numerics::detail{
|
|||||||
utils::Vector<T> sum_colwise_serial(const utils::Matrix<T>& A) {
|
utils::Vector<T> sum_colwise_serial(const utils::Matrix<T>& A) {
|
||||||
const uint64_t rows = A.rows();
|
const uint64_t rows = A.rows();
|
||||||
const uint64_t cols = A.cols();
|
const uint64_t cols = A.cols();
|
||||||
utils::Vector<T> sum(rows, T{0});
|
utils::Vector<T> sum(cols, T{0});
|
||||||
for (uint64_t i = 0; i < rows; ++i){
|
for (uint64_t i = 0; i < rows; ++i){
|
||||||
for (uint64_t j = 0; j < cols; ++j){
|
for (uint64_t j = 0; j < cols; ++j){
|
||||||
sum[i] += A(i,j);
|
sum[j] += A(i,j);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
|
|||||||
+25
-2
@@ -11,7 +11,6 @@ namespace numerics{
|
|||||||
inline void inplace_div(utils::Matrix<T>& A, const T b) {
|
inline void inplace_div(utils::Matrix<T>& A, const T b) {
|
||||||
detail::inplace_div_scalar_serial(A,b);
|
detail::inplace_div_scalar_serial(A,b);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline utils::Matrix<T> div(const utils::Matrix<T>& A, const T b) {
|
inline utils::Matrix<T> div(const utils::Matrix<T>& A, const T b) {
|
||||||
utils::Matrix<T> out = A;
|
utils::Matrix<T> out = A;
|
||||||
@@ -19,17 +18,41 @@ namespace numerics{
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_div(const T b, utils::Matrix<T>& A) {
|
||||||
|
detail::inplace_div_scalar_serial(b, A);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> div(const T b, const utils::Matrix<T>& A) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_div(b, out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline void inplace_div(utils::Vector<T>& v, const T b) {
|
inline void inplace_div(utils::Vector<T>& v, const T b) {
|
||||||
detail::inplace_div_scalar_serial(v,b);
|
detail::inplace_div_scalar_serial(v,b);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline utils::Vector<T> div(const utils::Vector<T>& v, const T b) {
|
inline utils::Vector<T> div(const utils::Vector<T>& v, const T b) {
|
||||||
utils::Vector<T> out = v;
|
utils::Vector<T> out = v;
|
||||||
inplace_div(out, b);
|
inplace_div(out, b);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_div(const T b, utils::Vector<T>& v) {
|
||||||
|
detail::inplace_div_scalar_serial(b, v);
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> div(const T b, const utils::Vector<T>& v) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_div(b, out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ---------------- Elementwise ----------------
|
// ---------------- Elementwise ----------------
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline void inplace_div(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
inline void inplace_div(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include "./numerics/add.h"
|
#include "./numerics/add.h"
|
||||||
#include "./numerics/argmax.h"
|
#include "./numerics/argmax.h"
|
||||||
#include "./numerics/argmin.h"
|
#include "./numerics/argmin.h"
|
||||||
|
#include "./numerics/binary_threshold.h"
|
||||||
#include "./numerics/clip.h"
|
#include "./numerics/clip.h"
|
||||||
#include "./numerics/div.h"
|
#include "./numerics/div.h"
|
||||||
#include "./numerics/dot.h"
|
#include "./numerics/dot.h"
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ namespace numerics{
|
|||||||
inline void inplace_sub(utils::Matrix<T>& A, const T b) {
|
inline void inplace_sub(utils::Matrix<T>& A, const T b) {
|
||||||
detail::inplace_sub_scalar_serial(A,b);
|
detail::inplace_sub_scalar_serial(A,b);
|
||||||
}
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_sub(const T b, utils::Matrix<T>& A) {
|
||||||
|
detail::inplace_sub_scalar_serial(b,A);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline utils::Matrix<T> sub(const utils::Matrix<T>& A, const T b) {
|
inline utils::Matrix<T> sub(const utils::Matrix<T>& A, const T b) {
|
||||||
@@ -18,11 +23,22 @@ namespace numerics{
|
|||||||
inplace_sub(out, b);
|
inplace_sub(out, b);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Matrix<T> sub(const T b, const utils::Matrix<T>& A) {
|
||||||
|
utils::Matrix<T> out = A;
|
||||||
|
inplace_sub(b, out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline void inplace_sub(utils::Vector<T>& v, const T b) {
|
inline void inplace_sub(utils::Vector<T>& v, const T b) {
|
||||||
detail::inplace_sub_scalar_serial(v,b);
|
detail::inplace_sub_scalar_serial(v,b);
|
||||||
}
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline void inplace_sub(const T b, utils::Vector<T>& v) {
|
||||||
|
detail::inplace_sub_scalar_serial(b,v);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline utils::Vector<T> sub(const utils::Vector<T>& v, const T b) {
|
inline utils::Vector<T> sub(const utils::Vector<T>& v, const T b) {
|
||||||
@@ -30,6 +46,14 @@ namespace numerics{
|
|||||||
inplace_sub(out, b);
|
inplace_sub(out, b);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline utils::Vector<T> sub(const T b, const utils::Vector<T>& v) {
|
||||||
|
utils::Vector<T> out = v;
|
||||||
|
inplace_sub(b, out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ---------------- Elementwise ----------------
|
// ---------------- Elementwise ----------------
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline void inplace_sub(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
inline void inplace_sub(utils::Matrix<T>& A, const utils::Matrix<T>& B) {
|
||||||
|
|||||||
@@ -31,5 +31,8 @@ namespace utils{
|
|||||||
return B;
|
return B;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// utils::matcast<float, uint64_t> (A);
|
||||||
|
|
||||||
|
|
||||||
} // end namespace utils
|
} // end namespace utils
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user