Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP added benchmark case for FFT convolutions #29

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Conversation

psteinb
Copy link
Collaborator

@psteinb psteinb commented Apr 13, 2018

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
Copy link
Collaborator Author

psteinb commented Apr 13, 2018

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