Skip to content

WIP added benchmark case for FFT convolutions - #29

Open
psteinb wants to merge 4 commits into
masterfrom
benchmark
Open

WIP added benchmark case for FFT convolutions#29
psteinb wants to merge 4 commits into
masterfrom
benchmark

Conversation

@psteinb

@psteinb psteinb commented Apr 13, 2018

Copy link
Copy Markdown
Collaborator

don't merge yet, I am trying to use google/benchmark with this c++2003 library and am failing miserably

if anyone, knows how to link libbenchmark.a into a c++2003 binary and resolve the following linking error:

/sw/apps/gcc/5.4.0/bin/c++  -O3 -DNDEBUG  -rdynamic CMakeFiles/bench_gpu_convolve.dir/bench_gpu_convolve_generated_bench_gpu_convolve.cu.o  -o bench_gpu_convolve  -L/sw/apps/boost/1.66.0/lib  -L/home/steinbac/development/FourierConvolutionCUDALib/build/src -Wl,-rpath,/sw/apps/boost/1.66.0/lib:/home/steinbac/development/FourierConvolutionCUDALib/build/src:/sw/apps/cuda/8.0.61/lib64 /sw/apps/cuda/8.0.61/lib64/libcudart_static.a -lpthread -ldl -lrt /home/steinbac/software/benchmark/1.3.0/lib/libbenchmark.a ../src/libFourierConvolutionCUDALib.so -pthread -lstdc++ /sw/apps/cuda/8.0.61/lib64/libcufft.so /sw/apps/cuda/8.0.61/lib64/libcudart_static.a -lpthread -ldl -lrt -lcuda /sw/apps/cuda/8.0.61/lib64/libcufft.so 
/home/steinbac/software/benchmark/1.3.0/lib/libbenchmark.a(benchmark.cc.o): In function `benchmark::RunSpecifiedBenchmarks(benchmark::BenchmarkReporter*, benchmark::BenchmarkReporter*)':
benchmark.cc:(.text+0x223c): undefined reference to `std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())'
/home/steinbac/software/benchmark/1.3.0/lib/libbenchmark.a(benchmark.cc.o): In function `std::thread::_State_impl<std::_Bind_simple<void (*(benchmark::internal::Benchmark::Instance const*, unsigned long, int, benchmark::internal::ThreadManager*))(benchmark::internal::Benchmark::Instance const*, unsigned long, int, benchmark::internal::ThreadManager*)> >::~_State_impl()':
benchmark.cc:(.text._ZNSt6thread11_State_implISt12_Bind_simpleIFPFvPKN9benchmark8internal9Benchmark8InstanceEmiPNS3_13ThreadManagerEES7_miS9_EEED2Ev[_ZNSt6thread11_State_implISt12_Bind_simpleIFPFvPKN9benchmark8internal9Benchmark8InstanceEmiPNS3_13ThreadManagerEES7_miS9_EEED5Ev]+0x8): undefined reference to `std::thread::_State::~_State()'
/home/steinbac/software/benchmark/1.3.0/lib/libbenchmark.a(benchmark.cc.o): In function `std::thread::_State_impl<std::_Bind_simple<void (*(benchmark::internal::Benchmark::Instance const*, unsigned long, int, benchmark::internal::ThreadManager*))(benchmark::internal::Benchmark::Instance const*, unsigned long, int, benchmark::internal::ThreadManager*)> >::~_State_impl()':
benchmark.cc:(.text._ZNSt6thread11_State_implISt12_Bind_simpleIFPFvPKN9benchmark8internal9Benchmark8InstanceEmiPNS3_13ThreadManagerEES7_miS9_EEED0Ev[_ZNSt6thread11_State_implISt12_Bind_simpleIFPFvPKN9benchmark8internal9Benchmark8InstanceEmiPNS3_13ThreadManagerEES7_miS9_EEED5Ev]+0xc): undefined reference to `std::thread::_State::~_State()'
/home/steinbac/software/benchmark/1.3.0/lib/libbenchmark.a(benchmark.cc.o):(.rodata._ZTINSt6thread11_State_implISt12_Bind_simpleIFPFvPKN9benchmark8internal9Benchmark8InstanceEmiPNS3_13ThreadManagerEES7_miS9_EEEE[_ZTINSt6thread11_State_implISt12_Bind_simpleIFPFvPKN9benchmark8internal9Benchmark8InstanceEmiPNS3_13ThreadManagerEES7_miS9_EEEE]+0x10): undefined reference to `typeinfo for std::thread::_State'

please let me know.

@psteinb psteinb self-assigned this Apr 13, 2018
@psteinb

psteinb commented Apr 13, 2018

Copy link
Copy Markdown
Collaborator Author

Here is the current output:

$ ./tests/bench_gpu_convolve 
inplace, 10x, (image 64**3, kernel 3**3) 2.456858s wall, 0.580000s user + 1.700000s system = 2.280000s CPU (92.8%)

I had to ditch libbenchmark as I was unable to resolve above mentioned linking problems under Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant