diff --git a/src/com/android/nn/benchmark/core/NNTestBase.java b/src/com/android/nn/benchmark/core/NNTestBase.java
index 21f8711..48a934f 100644
--- a/src/com/android/nn/benchmark/core/NNTestBase.java
+++ b/src/com/android/nn/benchmark/core/NNTestBase.java
@@ -32,7 +32,7 @@
 import java.util.List;
 import java.util.Optional;
 
-public class NNTestBase {
+public class NNTestBase implements AutoCloseable {
     protected static final String TAG = "NN_TESTBASE";
 
     // Used to load the 'native-lib' library on application startup.
@@ -322,4 +322,9 @@
         }
         return outFileName;
     }
+
+    @Override
+    public void close()  {
+        destroy();
+    }
 }
diff --git a/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java b/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
index e79a8b3..b939b54 100644
--- a/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
+++ b/src/com/android/nn/benchmark/util/DumpIntermediateTensors.java
@@ -91,13 +91,14 @@
                     String useNNAPIDir = useNNAPI? NNAPI_DIR: CPU_DIR;
                     Log.i(TAG, "Running " + modelName + " in " + useNNAPIDir);
                     TestModelEntry modelEntry = TestModels.getModelByName(modelName);
-                    NNTestBase testBase = modelEntry.createNNTestBase(
-                        useNNAPI, true/*enableIntermediateTensorsDump*/);
-                    testBase.setupModel(this);
-                    File outputDir = new File(getFilesDir() + "/" + DUMP_DIR +
-                        "/" + modelName, useNNAPIDir);
-                    safeMkdir(outputDir);
-                    testBase.dumpAllLayers(outputDir, inputAssetIndex, inputAssetSize);
+                    try (NNTestBase testBase = modelEntry.createNNTestBase(
+                            useNNAPI, true/*enableIntermediateTensorsDump*/)) {
+                        testBase.setupModel(this);
+                        File outputDir = new File(getFilesDir() + "/" + DUMP_DIR +
+                            "/" + modelName, useNNAPIDir);
+                        safeMkdir(outputDir);
+                        testBase.dumpAllLayers(outputDir, inputAssetIndex, inputAssetSize);
+                    }
                 }
             }
 
