moyix / fpsmt_gpu Goto Github PK
View Code? Open in Web Editor NEWSolving floating point SMT constraints on a GPU
Solving floating point SMT constraints on a GPU
Hi,
I'm getting this error during compilation:
❯ ./generate.sh sample_smt/readme.smt2
smt2cxx:1: command not found: docker
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I. -c theory.cu -o theory.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I. -c smt.cu -o smt.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I. -c aes.cu -o aes.o
make -C SMTLIB
make[1]: Entering directory '/home/adam/tools/fpsmt_gpu/SMTLIB'
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I.. -c Core.cu -o Core.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I.. -c Float.cu -o Float.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I.. -c Logger.cu -o Logger.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I.. -c Messages.cu -o Messages.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I.. -c NativeBitVector.cu -o NativeBitVector.o
nvcc --expt-relaxed-constexpr -DJFS_RUNTIME_FAILURE_CALLS_ABORT -dc -std=c++11 -I.. -c NativeFloat.cu -o NativeFloat.o
make[1]: Leaving directory '/home/adam/tools/fpsmt_gpu/SMTLIB'
nvcc theory.o smt.o aes.o SMTLIB/Core.o SMTLIB/Logger.o SMTLIB/NativeFloat.o SMTLIB/Messages.o SMTLIB/Float.o SMTLIB/NativeBitVector.o -o smt
nvlink error : Undefined reference to '_Z22LLVMFuzzerTestOneInputPKhm' in 'smt.o'
make: *** [Makefile:18: smt] Error 255
Any idea whats wrong ?
On some SMT files, the fuzzer reports success with an all zero input vector. This may be correct (haven't checked), but it should be astronomically unlikely that we ever see an all-zero input with a large input. The fuzzer should be initializing each block to i
and then AES-encrypting it with a random key before ever running LLVMFuzzerTestOneInput
, which should (almost) never produce all zeroes. So... what's going on here?
Output:
moyix@isabella:~/git/fpsmt$ bin/smt-div-c-30-smt2
DEV[0] Executing: cudaGetDeviceCount(&NUM_GPU)
Padding varsize from 132 to 144
DEV[0] Executing: cudaMalloc(&drkey, 176)
DEV[0] Executing: cudaMemcpy((uint8_t *)drkey, rkey, sizeof(uint8_t) * 176, cudaMemcpyHostToDevice)
DEV[0] Executing: cudaMalloc(&gbuf, padded*N*M)
DEV[0] Executing: cudaMalloc(&gobuf, sizeof(uint64_t))
DEV[0] Executing: cudaMalloc(&gexecs, sizeof(unsigned long long))
DEV[0] Executing: cudaStreamCreate(&stream)
Launching kernel on GPU0...
DEV[0] Executing: cudaLaunchHostFunc(stream, finishedCB, dev)
Padding varsize from 132 to 144
DEV[1] Executing: cudaMalloc(&drkey, 176)
DEV[1] Executing: cudaMemcpy((uint8_t *)drkey, rkey, sizeof(uint8_t) * 176, cudaMemcpyHostToDevice)
DEV[1] Executing: cudaMalloc(&gbuf, padded*N*M)
DEV[1] Executing: cudaMalloc(&gobuf, sizeof(uint64_t))
DEV[1] Executing: cudaMalloc(&gexecs, sizeof(unsigned long long))
DEV[1] Executing: cudaStreamCreate(&stream)
Launching kernel on GPU1...
DEV[1] Executing: cudaLaunchHostFunc(stream, finishedCB, dev)
Waiting on GPUs...
Search completed on device 0
DEV[0] Executing: cudaMemcpy(&hexecs, goexecs[i], sizeof(unsigned long long), cudaMemcpyDeviceToHost)
Did 0 execs in 0.380715 seconds, 0.000000 execs/s
DEV[0] Executing: cudaMemcpy(&oindex, gobuf[i], sizeof(uint64_t), cudaMemcpyDeviceToHost)
DEV[0] Executing: cudaMemcpy(buf, gbuf[i]+(oindex*padded), padded, cudaMemcpyDeviceToHost)
Found a satisfying assignment on device 0 thread 0:
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Hi,
I am not familar with nvcc
commands, but after docker pulling is complete, I am getting the following error from MakeFile.
I do have nvcc and cuda driver installed properly.
I did some searching online but dont seem to get any information about nvcc -O3 -dlto
. Do you have any insights on what might be the issue here? Thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.