diff --git a/v10b.sh b/v10.sh similarity index 90% rename from v10b.sh rename to v10.sh index 42d0018..58652c5 100755 --- a/v10b.sh +++ b/v10.sh @@ -5,6 +5,8 @@ SIMULTANEOUS_DOWNLOADS=4 SIMULTANEOUS_EXTRACTS=2 URLS=( +https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux +https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.168_418.67_linux.run https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run @@ -31,10 +33,21 @@ function extract { dirname="${fname%.*}" echo "$fname -> $dirname" rm -rf "$dirname" - if [[ $1 == *"1.243"* ]] || [[ $1 == *"2.89"* ]]; then - $SHELL "$fname" --silent --override --override-driver-check --toolkit --toolkitpath="$dirname" --defaultroot="$dirname" - else + if [[ $1 == *"0.130"* ]]; then + $SHELL "$fname" --silent --override --toolkit --toolkitpath="$dirname" + $SHELL "$fname" --silent --override --extract="$dirname" + rm -f $dirname/cuda-linux* + rm -f $dirname/cuda-samples-* + elif [[ $1 == *"1.105"* ]] || [[ $1 == *"1.168"* ]]; then $SHELL "$fname" --silent --override --toolkit --toolkitpath="$dirname" --defaultroot="$dirname" + $SHELL "$fname" --silent --override --extract="$dirname" + rm -f $dirname/cuda-linux* + rm -f $dirname/cuda-samples-* + elif [[ $1 == *"1.243"* ]] || [[ $1 == *"2.89"* ]]; then + $SHELL "$fname" --silent --override --override-driver-check --toolkit --toolkitpath="$dirname" --defaultroot="$dirname" + $SHELL "$fname" --silent --override --override-driver-check --extract="$dirname" + rm -f $dirname/cuda-linux* + rm -f $dirname/cuda-samples-* fi } export -f extract # export to subshells @@ -138,7 +151,7 @@ function nsight_size { } function driver_size { - echo 0 + path_size $1 NVIDIA-* } function pct { @@ -352,11 +365,11 @@ function size_csv { size_table } -# echo "downloading" -# nice -n20 parallel -j${SIMULTANEOUS_DOWNLOADS} download {} ::: ${URLS[*]} +echo "downloading" +nice -n20 parallel -j${SIMULTANEOUS_DOWNLOADS} download {} ::: ${URLS[*]} -# echo "extracting" -# nice -n20 parallel -j${SIMULTANEOUS_EXTRACTS} extract {} ::: ${URLS[*]} +echo "extracting" +nice -n20 parallel -j${SIMULTANEOUS_EXTRACTS} extract {} ::: ${URLS[*]} sym_html sym_csv diff --git a/v10a.sh b/v10a.sh deleted file mode 100755 index 3575820..0000000 --- a/v10a.sh +++ /dev/null @@ -1,364 +0,0 @@ -set -eou pipefail - -export WORK_DIR=/rust/cwpears/cudas -SIMULTANEOUS_DOWNLOADS=4 -SIMULTANEOUS_EXTRACTS=2 - -URLS=( -https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux -https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run -) - -function cuda_release { - version_re='/([0-9]+\.[0-9]+\.*[0-9]*)/' - if [[ $1 =~ $version_re ]]; then - echo ${BASH_REMATCH[1]} - else - echo "no match" - exit 1 - fi -} - -function download { - wget --no-check-certificate -P "$WORK_DIR" -c $1 -} -export -f download # export to subshells - - -function extract { - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - echo "$fname -> $dirname" - rm -rf "$dirname" - - if [[ $1 == *"1.105"* ]]; then - $SHELL "$fname" --silent --override --toolkit --toolkitpath="$dirname" --defaultroot="$dirname" - else - $SHELL "$fname" --silent --override --toolkit --toolkitpath="$dirname" - fi -} -export -f extract # export to subshells - -function cuda_version { - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - version=$(grep -roh -E 'CUDA_VERSION ([0-9]+)' $dirname/include | grep -o -E '[0-9]+') - echo CUDA_VERSION '(CUDA API Version)' $version -} - -function path_size { - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - if stat -t $dirname/$2 >/dev/null 2>&1; then # tests if glob matches anything - du -sLc $dirname/$2 | tail -n1 | cut -f1 - else - echo 0 - fi -} - -function so_size { - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - du -sLc $dirname/lib64/$2*.so | tail -n1 | cut -f1 -} - -function dir_syms { - shopt -s globstar - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - nm -D --defined-only $dirname/lib64/$2.so | wc -l -} - -function cuda_size { - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - du -s "$dirname" | cut -f1 -} - -function cusparse_size { - so_size $1 libcusparse -} - -function cublas_size { - so_size $1 libcublas -} - -function nvcc_size { - path_size $1 bin/nvcc -} - -function cufft_size { - so_size $1 libcufft -} - -function curand_size { - so_size $1 libcurand -} - -function cusolver_size { - so_size $1 libcusolver -} - -function npp_size { - so_size $1 libnpp* -} - -function nsight_compute_size { - a=$(path_size $1 NsightCompute-*) - b=$(path_size $1 nsight-compute-*) - echo $a + $b | bc -l -} - -function nsight_systems_size { - a=$(path_size $1 NsightSystems-*) - b=$(path_size $1 nsight-systems-*) - echo $a + $b | bc -l -} - -function cupti_size { - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - du -sLc $dirname/extras/CUPTI/lib64/libcupti*.so | tail -n1 | cut -f1 -} - -function gdb_size { - path_size $1 bin/cuda-gdb* -} - -function cudart_size { - so_size $1 libcudart -} - -function nvrtc_size { - so_size $1 libnvrtc -} - -function nsight_size { - path_size $1 libnsight -} - -function driver_size { - echo 0 -} - -function pct { - echo "x=$1 / $2 * 100; scale=2; x/1" | bc -l -} - -function cusparse_syms { - dir_syms $1 libcusparse -} - -function cublas_syms { - dir_syms $1 libcublas -} - -function cusolver_syms { - dir_syms $1 libcusolver -} - -function cufft_syms { - dir_syms $1 libcufft -} - -function curand_syms { - dir_syms $1 libcurand -} - -function cudart_syms { - dir_syms $1 libcudart -} - -function cupti_syms { - shopt -s globstar - fname="$WORK_DIR"/$(basename $1) - dirname="${fname%.*}" - nm -D --defined-only $dirname/extras/CUPTI/lib64/libcupti*.so | wc -l -} - -function npp_syms { - dir_syms $1 libnpp* -} - - -function sym_table { - printf "${TABLE_START}" - printf "${ROW_START}${HCELL_START}CUDA Release${HCELL_END}" - printf "${HCELL_START}cuSPARSE${HCELL_END}" - printf "${HCELL_START}cuBLAS${HCELL_END}" - printf "${HCELL_START}cuSOLVER${HCELL_END}" - printf "${HCELL_START}cuFFT${HCELL_END}" - printf "${HCELL_START}cuRAND${HCELL_END}" - printf "${HCELL_START}cudart${HCELL_END}" - printf "${HCELL_START}cupti${HCELL_END}" - printf "${HCELL_START}npp${HCELL_END}" - printf "${ROW_END}" - for url in ${URLS[*]}; do - _r=$(cuda_release "$url") - printf "${ROW_START}" - printf "${CELL_START}$_r${CELL_END}" - printf "${CELL_START}$(cusparse_syms $url)${CELL_END}" - printf "${CELL_START}$(cublas_syms $url)${CELL_END}" - printf "${CELL_START}$(cusolver_syms $url)${CELL_END}" - printf "${CELL_START}$(cufft_syms $url)${CELL_END}" - printf "${CELL_START}$(curand_syms $url)${CELL_END}" - printf "${CELL_START}$(cudart_syms $url)${CELL_END}" - printf "${CELL_START}$(cupti_syms $url)${CELL_END}" - printf "${CELL_START}$(npp_syms $url)${CELL_END}" - printf "$ROW_END" - done - printf "${TABLE_END}" -} - -function sym_html { - TABLE_START="