Skip to content
Snippets Groups Projects
Commit 2f459d34 authored by Hashim Sharif's avatar Hashim Sharif
Browse files

Merging

parents d22b2427 4cabd1ef
No related branches found
No related tags found
No related merge requests found
# ApproxHPVM Tensor Runtime # HPVM Tensor Runtime
## Getting Started
### Dependencies ## Dependencies
- CUDA-9.1 or above - CUDA >= 9.1
- Your device must have a CUDA-enabled nVidia GPU
- CUBLAS-9.1 or above - included with CUDA by default
- cuDNN-7.0 or above - cuDNN >= 7
- `cmake >= 3.18` ## Building Tensor Runtime
- `make >= 4` Tensor Runtime and the DNN sources using the Tensor runtime are built with the unified HPVM build system. These
can also be separately built. HPVM Tensor Runtime can be built under the `build` directory as:
- `gcc < 8` or `3.2 <= clang < 9` ```
- We have an upperbound for compiler version because CUDA doesn't support too recent compilers make -j ${NUM_THREADS} tensor_runtime
```
### Building the Tensor Runtime The tensor runtime is built as a static library under `build/lib/liibtensor_runtime.a`
The following commands will compile the tensor runtime library (`build/libtensor_runtime.a`) ### TensorRT DNN Benchmarks
as well as a number of exemplary benchmarks (DNN models):
```shell To assist development of tensor-based programs using only the tensor runtime, we include
mkdir build && cd build sources under `dnn_sources` that directly invoke the HPVM Tensor Runtime API calls for tensor operations, e.g., convolution, matrix multiplication,
cmake ../ add, relu, among others.
make -j
```
### Tensor Runtime APIs Each benchmark can be build under your `build` directory as:
- `tensor_runtime/include/tensor_runtime.h` declares all the functions available in the runtime. ```
make -j ${NUM_THREADS} ${BENCHMARK}
TODO: the tensor runtime is generally under-documented at the time. ```
More documentation will be added in the first public release.
- For examples of using `tensor_runtime` functions, see `dnn_sources/src/alexnet_cifar10.cc`. Currently, 17 Benchmarks included:
- Also, try running `build/alexnet_cifar10` which is compiled from that file and runnable out of the box.
## Developer Notes | | |
|------------------------|------------------------|
| lenet_mnist_fp32 | lenet_mnist_fp16 |
| alexnet_cifar10_fp32 | alexnet_cifar10_fp16 |
| alexnet2_cifar10_fp32 | alexnet2_cifar10_fp16 |
| vgg16_cifar10_fp32 | vgg16_cifar10_fp16 |
| vgg16_cifar100_fp32 | vgg16_cifar100_fp16 |
| mobilenet_cifar10_fp32 | mobilenet_cifar10_fp16 |
| resnet18_cifar10_fp32 | resnet18_cifar10_fp16 |
| alexnet_imagenet_fp32 | |
| vgg16_imagenet_fp32 | |
| resnet50_imagenet_fp32 | |
### Directory Structure `_fp32` suffix denotes fp32 binaries - these use the FP32 API calls
- ./tensor_runtime: `_fp_16` suffix denotes fp16 binaries - these use FP16 (half precision) calls.
- ./tensor_runtime/include/: Include files for Tensor Runtime
- ./tensor_runtime/include/tensor_signatures.cc: Include file with Tensor RT signatures
- NOTE: UPDATE this with updated API
- ./tensor_runtime/src/: HPVM TensorRT sources
- ./dnn_sources:
- ./dnn_sources/src/${BENCH}.cc: Per Bench FULL-precision source
- ./dnn_sources/src/half/${BENCH}.cc: Per Bench HALF-precision source
- ./dnn_sources/src/promise/${BENCH}.cc: Per Bench Layer-API source
- ./bin:
- ./bin/install_runtime.sh: Script for moving Tensor RT files to ./lib
- ./bin/run_autotuner.py: Python script for running Autotuner experiments
- ./bin/setup_tyler_paths.sh: Tyler-specific path setup for Tensor RT
- ./bin/setup_jetson.sh: Jetson board specific path setup for Tensor RT
- ./bin/setup_cuda_paths.sh: Place-holder script for setting CUDA paths
- ./bin/swing_selection.py: Script for hardware mapping
- NOTE: Includes the L2,L1 norm mapping to hardware knobs
...@@ -25,7 +25,7 @@ conda activate keras_python36 ...@@ -25,7 +25,7 @@ conda activate keras_python36
At the root of this project (`/projects/keras/`) install the Keras frontend pip package as: At the root of this project (`/projects/keras/`) install the Keras frontend pip package as:
``` ```
pip install -e . pip install -e ./
``` ```
**NOTE:** If you are using the conda environment, activate it prior to this step. **NOTE:** If you are using the conda environment, activate it prior to this step.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment