#!/bin/bash

# Copyright 2020 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# Checks that CUDA is working correctly and logs some useful information

set -xeuo pipefail

dpkg -l | grep nvidia
nvidia-smi
