| #!/bin/sh |
| |
| CUDA_TOOLKIT_BIN_DIR="$(dirname "$(readlink -f -- "$0")")" |
|
|
| setLatestNsightComputeToolDir() |
| { |
| |
| year=$(echo "$1" | cut -d'.' -f1) |
| major_version=$(echo "$1" | cut -d'.' -f2) |
| minor_version=$(echo "$1" | cut -d'.' -f3) |
|
|
| version_value=$(( year * 10000 + major_version * 100 + minor_version )) |
|
|
| if [ "$version_value" -ge "$latest_version" ]; then |
| latest_version=$version_value |
| LATEST_NSIGHT_COMPUTE_TOOL_DIR=$2 |
| fi |
| } |
|
|
| |
| latest_version=0 |
| |
| if [ -d "/opt/nvidia/nsight-compute" ]; then |
| for nsight_compute_dir in /opt/nvidia/nsight-compute/*; do |
| if [ ! -e "$nsight_compute_dir" ]; then |
| |
| continue |
| fi |
| setLatestNsightComputeToolDir "$(basename "$nsight_compute_dir")" "$nsight_compute_dir" |
| done |
| fi |
|
|
| |
| for nsight_compute_tool_dir_path in "$CUDA_TOOLKIT_BIN_DIR"/../nsight-compute-*; do |
| if [ ! -e "$nsight_compute_tool_dir_path" ]; then |
| |
| continue |
| fi |
| |
| nsight_compute_tool_dir_name=${nsight_compute_tool_dir_path##*/} |
| |
| nsight_compute_tool_version=${nsight_compute_tool_dir_name##*-} |
|
|
| setLatestNsightComputeToolDir "$nsight_compute_tool_version" "$nsight_compute_tool_dir_path" |
| done |
|
|
| if [ -z "$LATEST_NSIGHT_COMPUTE_TOOL_DIR" ]; then |
| echo "ERROR : nsight-compute directory is not found under $CUDA_TOOLKIT_BIN_DIR/../ or /opt/nvidia. Nsight Compute is not installed on your system." 1>&2 |
| exit 1 |
| fi |
|
|
| |
| NSIGHT_COMPUTE_TARGETS=$(find "$LATEST_NSIGHT_COMPUTE_TOOL_DIR/target" -maxdepth 1 -name "linux-*") |
| NSIGHT_COMPUTE_NUM_TARGETS=$(echo "$NSIGHT_COMPUTE_TARGETS" | wc -l) |
|
|
| |
| if [ "$NSIGHT_COMPUTE_NUM_TARGETS" = 1 ]; then |
| NSIGHT_COMPUTE_CLI="$NSIGHT_COMPUTE_TARGETS/ncu" |
| else |
| LINUX_DESKTOP_NSIGHT_COMPUTE_CLI="$LATEST_NSIGHT_COMPUTE_TOOL_DIR/target/linux-desktop-glibc_2_11_3-x64/ncu" |
| POWER_NSIGHT_COMPUTE_CLI="$LATEST_NSIGHT_COMPUTE_TOOL_DIR/target/linux-desktop-glibc_2_19_0-ppc64le/ncu" |
| LINUX_ARMSERVER_NSIGHT_COMPUTE_CLI="$LATEST_NSIGHT_COMPUTE_TOOL_DIR/target/linux-desktop-t210-a64/ncu" |
| LINUX_L4T_NSIGHT_COMPUTE_CLI="$LATEST_NSIGHT_COMPUTE_TOOL_DIR/target/linux-v4l_l4t-t210-a64/ncu" |
|
|
| ARCH=$(uname -m) |
|
|
| if [ "$ARCH" = "x86_64" ]; then |
| NSIGHT_COMPUTE_CLI="$LINUX_DESKTOP_NSIGHT_COMPUTE_CLI" |
| elif [ "$ARCH" = "ppc64le" ]; then |
| NSIGHT_COMPUTE_CLI="$POWER_NSIGHT_COMPUTE_CLI" |
| elif [ "$ARCH" = "aarch64" ]; then |
| case "$(uname -r)" in |
| *tegra*) NSIGHT_COMPUTE_CLI="$LINUX_L4T_NSIGHT_COMPUTE_CLI" ;; |
| *) NSIGHT_COMPUTE_CLI="$LINUX_ARMSERVER_NSIGHT_COMPUTE_CLI" ;; |
| esac |
| else |
| echo "ERROR : Unsupported Architecture: $ARCH" 1>&2 |
| exit 1 |
| fi |
| fi |
|
|
| if [ ! -x "$NSIGHT_COMPUTE_CLI" ]; then |
| echo "ERROR : $NSIGHT_COMPUTE_CLI not found." 1>&2 |
| exit 1 |
| fi |
|
|
| exec "$NSIGHT_COMPUTE_CLI" "$@" |
|
|