Skip to content
Snippets Groups Projects
README.md 1.82 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Environment setup 
    
    Add path to `libprotobuf.so` and `libnvdla_compiler.so` in LD_LIBRARY_PATH
    
    
    
    # Compilation Command 
    
    Compilation script : `miniera-hpvm/src/compile_benchmark.sh`
    
    Command:
    
    ```
    python3 /home/hsharif3/Gitlab/hpvm_release_nvdla/hpvm/build/tools/hpvm/tools/hpvm-clang/main.py -t nvdla --conf-file data/tuner_confs.txt -DMODEL_PARAMS_DIR=${PATH_TO_MODELPARAMS} -fno-exceptions miniera-hpvm.cpp miniera-hpvm
    
    ```
    
    
    hsharif3's avatar
    hsharif3 committed
    *NOTE*: by default hpvm-clang is configured to read calibration inputs from a `calib.txt` file plaed in the current build directoy (see main.py.in in hpvm-clang). Default compilation mode is INT8 - modify `main.py` in build directory to use FP16 mode (easily configurable)
    
    Hashim Sharif's avatar
    Hashim Sharif committed
    
    
    # Running on EPOCHS chip 
    
    The compilation creates an nvdla module named `hpvm-mod.nvdla` 
    
    Connect to EPOCHS chip:
    
    ```
    ssh -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 5506 root@ espgate.cs.columbia.edu
    
    ```
    
    
    hsharif3's avatar
    hsharif3 committed
    *password*: `openesp` 
    
    More instructions on EPOCHS chip here: 
    
    https://docs.google.com/document/d/1rQa6sIDKtYHGKmWg5bPROJ_FijDUnaVEWkckLWtpHFU/edit?usp=sharing
    
    
    Hashim Sharif's avatar
    Hashim Sharif committed
    
    Running on EPOCHS chip:
    
    ```
    
    cd NV_NVDLA/
    
    ./nvdla_runtime  --loadable  hpvm-mod.nvdla --image  ${test_image}  --rawdump
    
    ```
    
    
    hsharif3's avatar
    hsharif3 committed
    *NOTE*  --normalize not neeed here -- input should be INT8
    
    hsharif3's avatar
    hsharif3 committed
    # Images to use for Testing 
    
    Images to use for testing under `/benchmarks/miniera-hpvm/data/images` 
    
    The ground truth class of the image is part of the file name. For instance, `*_1.jpg` indicates file with target class `1`.
    
    
    
    # Frontend/Source changes required
    
    * Weights must be FP16!
    
    * Weights for FC layers need to be tranposed 
    
    
    hsharif3's avatar
    hsharif3 committed
    * Modify paths to readTrainedWeights to pass constant file path -- use MODEL_PARAMS_STR as part of string (see `miniera-hpvm.cpp` as example) 
    
    hsharif3's avatar
    hsharif3 committed
    
    
    
    # Missing Support 
    
    ** BatchNorm support missing (better to try on small example first)