65 lines
1.7 KiB
Bash
Executable File
65 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
uname -a
|
|
gcc --version
|
|
vips --version
|
|
|
|
# how large an image do you want to process?
|
|
# sample2.v is 290x442 pixels ... replicate this many times horizontally and
|
|
# vertically to get a highres image for the benchmark
|
|
tile=13
|
|
|
|
# how complex an operation do you want to run?
|
|
# this sets the number of copies of the benchmark we chain together:
|
|
# higher values run more slowly and are more likely to be CPU-bound
|
|
chain=1
|
|
|
|
echo building test image ...
|
|
echo "tile=$tile"
|
|
vips im_replicate sample2.v temp.v $tile $tile
|
|
if [ $? != 0 ]; then
|
|
echo "build of test image failed -- out of disc space?"
|
|
exit 1
|
|
fi
|
|
echo -n "test image is" `header -f width temp.v`
|
|
echo " by" `header -f height temp.v` "pixels"
|
|
max_cpus=`vips im_concurrency_get`
|
|
|
|
echo "max cpus = $max_cpus"
|
|
echo "starting benchmark ..."
|
|
echo /usr/bin/time -f %e vips \
|
|
--vips-concurrency=xx \
|
|
--vips-tile-width=64 --vips-tile-height=64 \
|
|
im_benchmarkn temp.v temp2.v $chain
|
|
echo reported real-time is best of three runs
|
|
echo cpus real-time
|
|
|
|
for((cpus = 1; cpus <= max_cpus; cpus++)); do
|
|
t1=`/usr/bin/time -f %e vips \
|
|
--vips-concurrency=$cpus \
|
|
--vips-tile-width=64 --vips-tile-height=64 \
|
|
im_benchmarkn temp.v temp2.v $chain 2>&1`
|
|
if [ $? != 0 ]; then
|
|
echo "benchmark failed -- install problem?"
|
|
exit 1
|
|
fi
|
|
t2=`/usr/bin/time -f %e vips \
|
|
--vips-concurrency=$cpus \
|
|
--vips-tile-width=64 --vips-tile-height=64 \
|
|
im_benchmarkn temp.v temp2.v $chain 2>&1`
|
|
t3=`/usr/bin/time -f %e vips \
|
|
--vips-concurrency=$cpus \
|
|
--vips-tile-width=64 --vips-tile-height=64 \
|
|
im_benchmarkn temp.v temp2.v $chain 2>&1`
|
|
|
|
# echo $t1 $t2 $t3
|
|
|
|
if [[ $t2 < $t1 ]]; then
|
|
t1=$t2
|
|
fi
|
|
if [[ $t3 < $t1 ]]; then
|
|
t1=$t3
|
|
fi
|
|
echo $cpus $t1
|
|
done
|