diff --git a/hpvm/docs/_static/alexnet2_cifar10.png b/hpvm/docs/_static/alexnet2_cifar10.png
new file mode 100644
index 0000000000000000000000000000000000000000..56b2f4f4b7800ffd304c0312a14dd27130f483cd
Binary files /dev/null and b/hpvm/docs/_static/alexnet2_cifar10.png differ
diff --git a/hpvm/docs/_static/alexnet_cifar10.png b/hpvm/docs/_static/alexnet_cifar10.png
new file mode 100644
index 0000000000000000000000000000000000000000..805bd8259cfce08bbb4950d25d5ddb48e8a08ac6
Binary files /dev/null and b/hpvm/docs/_static/alexnet_cifar10.png differ
diff --git a/hpvm/docs/_static/alexnet_imagenet.png b/hpvm/docs/_static/alexnet_imagenet.png
new file mode 100644
index 0000000000000000000000000000000000000000..290b2bb4e60c02e41d14aabe1be5c7c80c8ed8ed
Binary files /dev/null and b/hpvm/docs/_static/alexnet_imagenet.png differ
diff --git a/hpvm/docs/_static/lenet_mnist.png b/hpvm/docs/_static/lenet_mnist.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2e423deb8712aa14abcc10eca5b0f7dff1841d1
Binary files /dev/null and b/hpvm/docs/_static/lenet_mnist.png differ
diff --git a/hpvm/docs/_static/mobilenet_cifar10.png b/hpvm/docs/_static/mobilenet_cifar10.png
new file mode 100644
index 0000000000000000000000000000000000000000..15447705bd0407ff632ec0c96ce58033dce1d614
Binary files /dev/null and b/hpvm/docs/_static/mobilenet_cifar10.png differ
diff --git a/hpvm/docs/_static/resnet18_cifar10.png b/hpvm/docs/_static/resnet18_cifar10.png
new file mode 100644
index 0000000000000000000000000000000000000000..566459fbd73d8b48a4f368879a0c64cf626094df
Binary files /dev/null and b/hpvm/docs/_static/resnet18_cifar10.png differ
diff --git a/hpvm/docs/_static/resnet50_imagenet.png b/hpvm/docs/_static/resnet50_imagenet.png
new file mode 100644
index 0000000000000000000000000000000000000000..c46031cb3d3dae36633ac8f48942e2dfb0fa189e
Binary files /dev/null and b/hpvm/docs/_static/resnet50_imagenet.png differ
diff --git a/hpvm/docs/_static/vgg16_cifar10.png b/hpvm/docs/_static/vgg16_cifar10.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ca61df192dcfcd506055e7740534ea7959af53b
Binary files /dev/null and b/hpvm/docs/_static/vgg16_cifar10.png differ
diff --git a/hpvm/docs/_static/vgg16_cifar100.png b/hpvm/docs/_static/vgg16_cifar100.png
new file mode 100644
index 0000000000000000000000000000000000000000..867bb4ee4d92fb3dfbafe1ccb40790dd667e5c82
Binary files /dev/null and b/hpvm/docs/_static/vgg16_cifar100.png differ
diff --git a/hpvm/docs/components/index.rst b/hpvm/docs/components/index.rst
index 8f9ab42a8dbf6ad461ea93867c6e6537ce79762b..d0da3e469df9a7feeadd5b9bffd9027e1f9c3405 100644
--- a/hpvm/docs/components/index.rst
+++ b/hpvm/docs/components/index.rst
@@ -7,7 +7,7 @@ HPVM consists of a few relatively independent key components.
 * HPVM code generator: a few ``opt`` passes that lowers HPVM IR to LLVM IR,
   which is then compiled into object code and binary.
 
-:doc:`Compilation process of HPVM </references/hpvm-specification>`
+:doc:`Compilation process of HPVM </specifications/hpvm-spec>`
 shows how these 2 components work together.
 In addition, there are:
 
diff --git a/hpvm/docs/conf.py b/hpvm/docs/conf.py
index 8e65a2b3582d69e409820921dc0fe3a37ebaf3d5..fc50b689c7e6e996d2653f973c44573e49d8bc0b 100644
--- a/hpvm/docs/conf.py
+++ b/hpvm/docs/conf.py
@@ -98,7 +98,7 @@ html_theme_options = {
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = []
+html_static_path = ["_static"]
 
 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
 # using the given strftime format.
diff --git a/hpvm/docs/references/compilation-process.rst b/hpvm/docs/developerdocs/compilation-process.rst
similarity index 100%
rename from hpvm/docs/references/compilation-process.rst
rename to hpvm/docs/developerdocs/compilation-process.rst
diff --git a/hpvm/docs/developerdocs/index.rst b/hpvm/docs/developerdocs/index.rst
index 225fbdfd49eb4c143545ecf1e677b5857cb2cb99..38c8c514199a7da028dc70668fa491b22424040e 100644
--- a/hpvm/docs/developerdocs/index.rst
+++ b/hpvm/docs/developerdocs/index.rst
@@ -6,4 +6,6 @@ Developer Documents
 
    approximation-implementation
    cnn-models
+   compilation-process
    configuration-format
+   port-to-hpvm-c
diff --git a/hpvm/docs/developerdocs/port-to-hpvm-c.rst b/hpvm/docs/developerdocs/port-to-hpvm-c.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dbdb900b8a8b21ee95a92370cd18eaa3028c40c9
--- /dev/null
+++ b/hpvm/docs/developerdocs/port-to-hpvm-c.rst
@@ -0,0 +1,30 @@
+Porting a Program from C to HPVM-C
+==================================
+
+The following represents the required steps to port a regular C program into an HPVM program with HPVM-C. These steps are described at a high level; for more detail, please see `hpvm-cava </hpvm/test/benchmarks/hpvm-cava>`_ provided in `benchmarks </hpvm/test/benchmarks>`_.
+
+* Separate the computation that will become a kernel into its own (leaf node) function and add the attributes and target hint.
+* Create a level 1 wrapper node function that will describe the thread-level parallelism (for the GPU). The node will:
+
+  * Use the ``createNode[ND]()`` method to create a kernel node and specify how many threads will execute it.
+  * Bind its arguments to the kernel arguments.
+
+* If desired, create a level 2 wrapper node function which will describe the threadblock-level parallalism (for the GPU). This node will:
+
+  * Use the ``createNode[ND]()`` method to create a level 1 wrapper node and specify how many threadblocks will execute it.
+  * Bind its arguments to its child node's arguments.
+
+* A root node function that creates all the top-level wrapper nodes, binds their arguments, and connects their edges.
+
+  * Each root node represents a DFG.
+
+* All the above node functions have the combined arguments of all the kernels that are nested at each level. 
+* The host code will have to include the following:
+
+  * Initialize the HPVM runtime using the ``init()`` method.
+  * Create an argument struct for each DFG and assign its member variables.
+  * Add all the memory that is required by the kernel into the memory tracker.
+  * Launch the DFG by calling the ``launch()`` method on the root node function, and passing the corresponding argument struct.
+  * Wait for the DFG to complete execution.
+  * Read out any generated memory using the ``request_mem()`` method.
+  * Remove all the tracked memory from the memory tracker.
diff --git a/hpvm/docs/gallery.rst b/hpvm/docs/gallery.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a7135518729f70c0a28beeec08a8080245352557
--- /dev/null
+++ b/hpvm/docs/gallery.rst
@@ -0,0 +1,31 @@
+Gallery
+=======
+
+This gallery contains example tradeoff curves for the 10 DNN benchmarks in HPVM.
+The performances shown are measured on Jetson TX2;
+these numbers are close to what is shown in `ApproxTuner <https://dl.acm.org/doi/10.1145/3437801.3446108>`_,
+with small differences due to variation in autotuning and profiling.
+
+.. list-table:: Tradeoff curves of 9 benchmark DNN networks.
+   :widths: 30 30
+   :header-rows: 0
+
+   * - .. image:: _static/lenet_mnist.png
+          :target: _static/lenet_mnist.png
+     - .. image:: _static/alexnet2_cifar10.png
+          :target: _static/alexnet2_cifar10.png
+   * - .. image:: _static/alexnet_cifar10.png
+          :target: _static/alexnet_cifar10.png
+     - .. image:: _static/alexnet_imagenet.png
+          :target: _static/alexnet_imagenet.png
+   * - .. image:: _static/vgg16_cifar10.png
+          :target: _static/vgg16_cifar10.png
+     - .. image:: _static/vgg16_cifar100.png
+          :target: _static/vgg16_cifar100.png
+   * - .. image:: _static/resnet18_cifar10.png
+          :target: _static/resnet18_cifar10.png
+     - .. image:: _static/resnet50_imagenet.png
+          :target: _static/resnet50_imagenet.png
+   * - .. image:: _static/mobilenet_cifar10.png
+          :target: _static/mobilenet_cifar10.png
+     -
diff --git a/hpvm/docs/getting-started.rst b/hpvm/docs/getting-started.rst
index cbf5d0b095c1035acf8bfcc7aaccf1d3cb0be3ce..82a582283e7f7071a77ef55c1e2d9eca5fa9668d 100644
--- a/hpvm/docs/getting-started.rst
+++ b/hpvm/docs/getting-started.rst
@@ -222,7 +222,7 @@ while ``configs_profiled.png`` shows the final performance-accuracy tradeoff cur
 
 An example of ``configs_profiled.png`` looks like this (proportion of your image may be different):
 
-.. image:: tradeoff-curves/alexnet2_cifar10.png
+.. image:: _static/alexnet2_cifar10.png
 
 -----------------------
 
diff --git a/hpvm/docs/index.rst b/hpvm/docs/index.rst
index 8bf0744c50768af3dc2541a7d556976831268c36..70817d4bef3773e36c0033944c83bb9d4cec424e 100644
--- a/hpvm/docs/index.rst
+++ b/hpvm/docs/index.rst
@@ -52,8 +52,9 @@ Documentation
    getting-started
    tests
    components/index
-   references/index
+   specifications/index
    developerdocs/index
+   gallery
 
 Indices and tables
 ------------------
diff --git a/hpvm/docs/install.rst b/hpvm/docs/install.rst
index fa4a3f747b24501537903edc8f7b09da8928571b..a4f386ff1b49d48e17e4c1e085fa9c0de41a5c19 100644
--- a/hpvm/docs/install.rst
+++ b/hpvm/docs/install.rst
@@ -19,12 +19,19 @@ The following components are required to be installed on your machine to build H
 
 Python must be strictly 3.6 (any subversion from 3.6.0 to 3.6.13).
 Alternatively, if you use Anaconda for package management,
-we provide a conda environment file that covers all Python and package requirements:
+we provide a conda environment file that covers all Python and package requirements
+(``hpvm/env.yaml`` can be found in the repository):
 
 .. code-block:: bash
 
    conda env create -n hpvm -f hpvm/env.yaml
 
+This creates the conda environment ``hpvm``.
+If you use this method, remember to activate the environment each time you enter a bash shell:
+
+.. code-block:: bash
+
+   conda activate hpvm
 
 Supported Architectures
 -----------------------
diff --git a/hpvm/docs/references/index.rst b/hpvm/docs/references/index.rst
deleted file mode 100644
index e2650fb9e2b6729f514120b289f0f1dfd0a54b76..0000000000000000000000000000000000000000
--- a/hpvm/docs/references/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-References
-============
-
-Below are some technical details of HPVM system and the HPVM-C language.
-
-.. toctree::
-   :maxdepth: 1
-
-   hpvm-c
-   hpvm-specification
-   compilation-process
diff --git a/hpvm/docs/references/hpvm-c.rst b/hpvm/docs/specifications/hpvm-c-spec.rst
similarity index 81%
rename from hpvm/docs/references/hpvm-c.rst
rename to hpvm/docs/specifications/hpvm-c-spec.rst
index 8956bf0c87118ff37e3c2020d94138cfd9b03c29..ee2b55a4961c2eb2eda947e9a0c6bce6a7a292ee 100644
--- a/hpvm/docs/references/hpvm-c.rst
+++ b/hpvm/docs/specifications/hpvm-c-spec.rst
@@ -117,35 +117,3 @@ Atomically computes the bitwise XOR of ``v`` and the value stored at memory loca
 
 ``void __hpvm__barrier()``:raw-html-m2r:`<br>`
 Local synchronization barrier across dynamic instances of current leaf node.
-
-Porting a Program from C to HPVM-C
-==================================
-
-The following represents the required steps to port a regular C program into an HPVM program with HPVM-C. These steps are described at a high level; for more detail, please see `hpvm-cava </hpvm/test/benchmarks/hpvm-cava>`_ provided in `benchmarks </hpvm/test/benchmarks>`_.
-
-
-* Separate the computation that will become a kernel into its own (leaf node) function and add the attributes and target hint.
-* Create a level 1 wrapper node function that will describe the thread-level parallelism (for the GPU). The node will:
-
-  * Use the ``createNode[ND]()`` method to create a kernel node and specify how many threads will execute it.
-  * Bind its arguments to the kernel arguments.
-
-* If desired, create a level 2 wrapper node function which will describe the threadblock-level parallalism (for the GPU). This node will:
-
-  * Use the ``createNode[ND]()`` method to create a level 1 wrapper node and specify how many threadblocks will execute it.
-  * Bind its arguments to its child node's arguments.
-
-* A root node function that creates all the top-level wrapper nodes, binds their arguments, and connects their edges.
-
-  * Each root node represents a DFG.
-
-* All the above node functions have the combined arguments of all the kernels that are nested at each level. 
-* The host code will have to include the following:
-
-  * Initialize the HPVM runtime using the ``init()`` method.
-  * Create an argument struct for each DFG and assign its member variables.
-  * Add all the memory that is required by the kernel into the memory tracker.
-  * Launch the DFG by calling the ``launch()`` method on the root node function, and passing the corresponding argument struct.
-  * Wait for the DFG to complete execution.
-  * Read out any generated memory using the ``request_mem()`` method.
-  * Remove all the tracked memory from the memory tracker.
diff --git a/hpvm/docs/references/hpvm-specification.rst b/hpvm/docs/specifications/hpvm-spec.rst
similarity index 93%
rename from hpvm/docs/references/hpvm-specification.rst
rename to hpvm/docs/specifications/hpvm-spec.rst
index 90226b333db2bfc8339bea8d6367ad9f8fcbe8e0..80cec0bd8f9e593b82c77ae68ff42e870088b01e 100644
--- a/hpvm/docs/references/hpvm-specification.rst
+++ b/hpvm/docs/specifications/hpvm-spec.rst
@@ -1,36 +1,18 @@
 .. role:: raw-html-m2r(raw)
    :format: html
 
-HPVM Abstraction
-================
-
-Table of Contents
-------------------
-
-* `HPVM Abstraction <#abstraction>`_
-
-  * `Dataflow Node <#node>`_
-  * `Dataflow Edge <#edge>`_
-  * `Input and Output Bind <#bind>`_
-  * `Host Code <#host>`_
-
-* `HPVM Implementation <#implementation>`_
+HPVM Language Reference
+=======================
 
-  * `Intrinsics for Describing Graphs <#describing>`_
-  * `Intrinsics for Querying Graphs <#querying>`_
-  * `Intrinsics for Memory Allocation and Synchronization <#memory>`_
-  * `Intrinsics for Graph Interaction <#interaction>`_
+.. contents:: Table of Contents
 
-* `Implementation Limitations <#limitations>`_
-
-:raw-html-m2r:`<a name="abstraction"></a>`
+HPVM Abstraction
+----------------
 
 An HPVM program is a combination of host code plus a set of one or more distinct dataflow graphs. Each dataflow graph (DFG) is a hierarchical graph with side effects. The DFG must be acyclic. Nodes represent units of execution, and edges between nodes describe the explicit data transfer requirements. A node can begin execution once a data item becomes available on every one of its input edges. Repeated transfer of data items between nodes (if more inputs are provided) yields a pipelined execution of different nodes in the graph. The execution of a DFG is initiated and terminated by host code that launches the graph. Nodes may access globally shared memory through load and store instructions (side-effects).
 
-:raw-html-m2r:`<a name="node"></a>`
-
 Dataflow Node
--------------
+^^^^^^^^^^^^^
 
 A *dataflow node* represents unit of computation in the DFG. A node can begin execution once a data item becomes available on every one of its input edges.
 
@@ -44,10 +26,8 @@ Leaf nodes contain code expressing actual computations. Leaf nodes may contain i
 
 Note that the graph is fully interpreted at compile-time and  cannot be modified at runtime except for the number of dynamic instances, which can be data dependent.
 
-:raw-html-m2r:`<a name="edge"></a>`
-
 Dataflow Edge
--------------
+^^^^^^^^^^^^^
 
 A *dataflow edge* from the output ``out`` of a source dataflow node ``Src`` to the input ``in`` of a sink dataflow node ``Dst`` describes the explicit data transfer requirements. ``Src`` and ``Dst`` node must belong to the same child graph, i.e. must be children of the same internal node.
 
@@ -57,14 +37,11 @@ A static edge also represents multiple dynamic instances of that edge between th
 
 An edge can be instantiated at runtime using one of two replication mechanisms:
 
-
 * *All-to-all*, where all dynamic instances of the source node are connected to all dynamic instances of the sink node, thus expressing a synchronization barrier between the two groups of nodes, or
 * *One-to-one*, where each dynamic instance of the source node is connected to a single corresponding instance of the sink node. One-to-one replication requires that the grid structure (number of dimensions and the extents in each dimension) of the source and sink nodes be identical.
 
-:raw-html-m2r:`<a name="bind"></a>`
-
 Input and Output Bind
----------------------
+^^^^^^^^^^^^^^^^^^^^^
 
 An internal node is responsible for mapping its inputs, provided by incoming dataflow edges, to the inputs to one or more nodes of the child graph.
 
@@ -75,14 +52,11 @@ Conversely, an internal node binds output ``oc`` of its child node ``Src`` to it
 
 A bind is always **all-to-all**.
 
-:raw-html-m2r:`<a name="host"></a>`
-
 Host Code
----------
+^^^^^^^^^
 
 In an HPVM program, the host code is responsible for setting up, initiating the execution and blocking for completion of a DFG. The host can interact with the DFG to sustain a streaming computation by sending all data required for, and receiving all data produced by, one execution of the DFG. The list of actions that can be performed by the host is described below:
 
-
 * **Initialization and Cleanup**:
   All HPVM operations must be enclosed by the HPVM initialization and cleanup. These operations perform initialization and cleanup of runtime constructs that provide the runtime support for HPVM.
 * **Track Memory**:
@@ -107,10 +81,8 @@ In an HPVM program, the host code is responsible for setting up, initiating the
   * For a non-streaming DFG, the data produced by the DFG are ready to be read by the host.
   * For a streaming DFG, no more data may be provided for processing by the DFG.
 
-:raw-html-m2r:`<a name="implementation"></a>`
-
 HPVM Implementation
-===================
+-------------------
 
 This section describes the implementation of HPVM on top of LLVM IR.
 
@@ -128,10 +100,8 @@ We represent nodes with opaque handles (pointers of LLVM type i8*). We represent
 
 Pointer arguments of node functions are required to be annotated with attributes in, and/or out, depending on their expected use (read only, write only, read write).
 
-:raw-html-m2r:`<a name="describing"></a>`
-
 Intrinsics for Describing Graphs
---------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The intrinsics for describing graphs can only be used by internal nodes. Also, internal nodes are only allowed to have these intrinsics as part of their node function, with the exception of a return statement of the appropriate type, in order to return the result of the outgoing dataflow edges.
 
@@ -156,10 +126,8 @@ Bind input ``ip`` of current node to input ``ic`` of child node ``N``. Argument
 ``void llvm.hpvm.bind.output(i8* N, i32 oc, i32 op, i1 isStream)``:raw-html-m2r:`<br>`
 Bind output ``oc`` of child node ``N`` to output ``op`` of current node. Field ``oc`` of the return struct in ``N``'s node function and field ``op`` of the return struct in the current node function must have matching types. ``isStream`` chooses a streaming (1) or non streaming (0) bind.
 
-:raw-html-m2r:`<a name="querying"></a>`
-
 Intrinsics for Querying Graphs
-------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The following intrinsics are used to query the structure of the DFG. They can only be used by leaf nodes.
 
@@ -178,10 +146,8 @@ Get index of current dynamic node instance of node ``N`` in dimension x, y or z
 ``i64 llvm.hpvm.getNumNodeInstances.{x,y,z}(i8* N)``:raw-html-m2r:`<br>`
 Get number of dynamic instances of node ``N`` in dimension x, y or z respectively. The dimension must be one of the dimensions in which the node is replicated.
 
-:raw-html-m2r:`<a name="memory"></a>`
-
 Intrinsics for Memory Allocation and Synchronization
-----------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The following intrinsics are used for memory allocation and synchronization. They can only be used by leaf nodes.
 
@@ -216,10 +182,8 @@ Atomically computes the bitwise XOR of ``v`` and the value stored at memory loca
 ``void llvm.hpvm.barrier()``:raw-html-m2r:`<br>`
 Local synchronization barrier across dynamic instances of current leaf node.
 
-:raw-html-m2r:`<a name="interaction"></a>`
-
 Intrinsics for Graph Interaction
---------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The following intrinsics are for graph initialization/termination and interaction with the host code, and can be used only by the host code.
 
@@ -250,14 +214,11 @@ Push set of input data ``args`` (same as type included in launch) to streaming D
 ``i8* llvm.hpvm.pop(i8* GraphID)``:raw-html-m2r:`<br>`
 Pop and return data from streaming DFG with handle ``GraphID``. The return type is a struct containing a field for every output of DFG. 
 
-:raw-html-m2r:`<a name="limitations"></a>`
-
 Implementation Limitations
---------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Due to limitations of our current prototype implementation, the following restrictions are imposed:
 
-
 * In HPVM, a memory object is represented as a (pointer, size) pair that includes the address of memory object, and the size (in bytes) of the pointed-to object. Therefore, when an edge/bind carries a pointer, it must be followed by an i64 size value.           
 * 
   Pointers cannot be transferred between nodes using dataflow edges. Instead, they should be passed using the bind operation from the (common) parent of the source and sink nodes.
diff --git a/hpvm/docs/specifications/index.rst b/hpvm/docs/specifications/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..bcd6199fc9341f9ec5d0e861bde52ce077865859
--- /dev/null
+++ b/hpvm/docs/specifications/index.rst
@@ -0,0 +1,10 @@
+Specifications
+==============
+
+Below are the specifications of HPVM Graph Abstraction and the HPVM-C language.
+
+.. toctree::
+   :maxdepth: 1
+
+   hpvm-spec
+   hpvm-c-spec
diff --git a/hpvm/docs/tradeoff-curves/alexnet2_cifar10.pdf b/hpvm/docs/tradeoff-curves/alexnet2_cifar10.pdf
deleted file mode 100644
index d889f0258cbd0590bb46cf7181295d28120f2470..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/alexnet2_cifar10.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/alexnet2_cifar10.png b/hpvm/docs/tradeoff-curves/alexnet2_cifar10.png
deleted file mode 100644
index 754f03248b402e7d55661364311cf9a08763acc0..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/alexnet2_cifar10.png and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/alexnet_cifar10.pdf b/hpvm/docs/tradeoff-curves/alexnet_cifar10.pdf
deleted file mode 100644
index 22be739d4367882417b45036ea9fe098b5797e35..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/alexnet_cifar10.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/alexnet_imagenet.pdf b/hpvm/docs/tradeoff-curves/alexnet_imagenet.pdf
deleted file mode 100644
index b3bcc6e53b091d0c8ac317fe8f3d9cfb6a79fb80..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/alexnet_imagenet.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/index.rst b/hpvm/docs/tradeoff-curves/index.rst
deleted file mode 100644
index 551ac34089fd55872ef3c408948c6c6d63707d87..0000000000000000000000000000000000000000
--- a/hpvm/docs/tradeoff-curves/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Gallery
-=======
-
-This gallery contains example tradeoff curves for the 10 DNN benchmarks in HPVM.
-
-.. image:: alexnet_cifar10.pdf
diff --git a/hpvm/docs/tradeoff-curves/lenet_mnist.pdf b/hpvm/docs/tradeoff-curves/lenet_mnist.pdf
deleted file mode 100644
index 84698551202cdb4d6bf712a5135e107a4676eb34..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/lenet_mnist.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/mobilenet_cifar10.pdf b/hpvm/docs/tradeoff-curves/mobilenet_cifar10.pdf
deleted file mode 100644
index cf61f76c89fcf5c9848b473cd093411d8f4a6255..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/mobilenet_cifar10.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/resnet18_cifar10.pdf b/hpvm/docs/tradeoff-curves/resnet18_cifar10.pdf
deleted file mode 100644
index 5950d202dee146983cce542ce32ec91887dd379d..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/resnet18_cifar10.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/resnet50_imagenet.pdf b/hpvm/docs/tradeoff-curves/resnet50_imagenet.pdf
deleted file mode 100644
index 67d3651bf15ab0b7c1350988846072fd712f4b4f..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/resnet50_imagenet.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/vgg16_cifar10.pdf b/hpvm/docs/tradeoff-curves/vgg16_cifar10.pdf
deleted file mode 100644
index 6a225ba372de053592d39e435c6b5f0a14e70a53..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/vgg16_cifar10.pdf and /dev/null differ
diff --git a/hpvm/docs/tradeoff-curves/vgg16_cifar100.pdf b/hpvm/docs/tradeoff-curves/vgg16_cifar100.pdf
deleted file mode 100644
index 36a1dcd95c253a2e6073213034bab496910c2bcd..0000000000000000000000000000000000000000
Binary files a/hpvm/docs/tradeoff-curves/vgg16_cifar100.pdf and /dev/null differ