Commit b0d86687 authored by Leona C's avatar Leona C Committed by Scott Cyphers

ngraph.ai theme (#2654)

* [ONNX] Add documentation

* Update documentation contributor's instructions

* Doc theme to match ngraph.ai

* Minor formatting fixes and PR feedback

* ToC fixes

* ToC fixes

* Add changes

* Be consistent with BUILDDIR

* Be consistent with substitution

* Update Makefile
parent 4f586563
#
# Robust Makefile for Sphinx documentation # Robust Makefile for Sphinx documentation
# #
# You can set these variables from the command line. # You can set these variables from the command line.
SPHINXOPTS = SPHINXOPTS =
SPHINXBUILD = sphinx-build SPHINXBUILD = sphinx-build
SPHINXPROJ = IntelnGraphlibrary SPHINXPROJ = nGraphCompilerStack
SOURCEDIR = source SOURCEDIR = source
BUILDDIR = build BUILDDIR = build
ALLSPHINXOPTS = ${SOURCEDIR}
# Put it first so that "make" without argument is like "make help". # Put it first so that "make" without argument is like "make help".
help: help:
......
...@@ -93,7 +93,7 @@ q:before, q:after { ...@@ -93,7 +93,7 @@ q:before, q:after {
title { title {
font-family: NeoSansIntel; font-family: "NeoSansIntel-Regular", "IntelClear-Bold", sans;
} }
...@@ -184,7 +184,7 @@ button, input[type="button"], input[type="reset"], input[type="submit"] { ...@@ -184,7 +184,7 @@ button, input[type="button"], input[type="reset"], input[type="submit"] {
*overflow: visible; *overflow: visible;
} }
button[disabled], input[disabled] { input[disabled] {
cursor: default; cursor: default;
} }
...@@ -299,7 +299,7 @@ big, small { ...@@ -299,7 +299,7 @@ big, small {
} }
a, a:visited { a, a:visited {
text-decoration: underline; text-decoration: none;
} }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
...@@ -578,7 +578,7 @@ a .fa, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rs ...@@ -578,7 +578,7 @@ a .fa, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rs
} }
.wy-alert-title, .rst-content .admonition-title { .wy-alert-title, .rst-content .admonition-title {
color: #fcfcfc; color: #1e2129;
text-transform: small-caps; text-transform: small-caps;
display: block; display: block;
background: #638470; background: #638470;
...@@ -607,7 +607,7 @@ a .fa, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rs ...@@ -607,7 +607,7 @@ a .fa, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rs
background: #c0e4ff; background: #c0e4ff;
} }
.wy-alert.wy-alert-info .wy-alert-title, .rst-content .note .wy-alert-title, .rst-content .wy-alert-info.attention .wy-alert-title, .rst-content .wy-alert-info.caution .wy-alert-title, .rst-content .wy-alert-info.danger .wy-alert-title, .rst-content .wy-alert-info.error .wy-alert-title, .rst-content .wy-alert-info.hint .wy-alert-title, .rst-content .wy-alert-info.important .wy-alert-title, .rst-content .wy-alert-info.tip .wy-alert-title, .rst-content .wy-alert-info.warning .wy-alert-title, .rst-content .seealso .wy-alert-title, .rst-content .wy-alert-info.admonition-todo .wy-alert-title, .wy-alert.wy-alert-info .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-info .admonition-title, .rst-content .note .admonition-title, .rst-content .wy-alert-info.attention .admonition-title, .rst-content .wy-alert-info.caution .admonition-title, .rst-content .wy-alert-info.danger .admonition-title, .rst-content .wy-alert-info.error .admonition-title, .rst-content .wy-alert-info.hint .admonition-title, .rst-content .wy-alert-info.important .admonition-title, .rst-content .wy-alert-info.tip .admonition-title, .rst-content .wy-alert-info.warning .admonition-title, .rst-content .seealso .admonition-title, .rst-content .wy-alert-info.admonition-todo .admonition-title { .wy-alert.wy-alert-info .wy-alert-title, .rst-content .note .wy-alert-title, .rst-content .wy-alert-info.attention .wy-alert-title, .rst-content .wy-alert-info.caution .wy-alert-title, .rst-content .wy-alert-info.danger .wy-alert-title, .rst-content .wy-alert-info.error .wy-alert-title, .rst-content .wy-alert-info.hint .wy-alert-title, .rst-content .wy-alert-info.important .wy-alert-title, .rst-content .wy-alert-info.tip .wy-alert-title, .rst-content .wy-alert-info.warning .wy-alert-title, .rst-content .seealso .wy-alert-title, .rst-content .wy-alert-info.admonition-todo .wy-alert-title, .wy-alert.wy-alert-info .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-info .admonition-title, .rst-content .note .admonition-title, .rst-content .wy-alert-info.attention .admonition-title, .rst-content .wy-alert-info.caution .admonition-title, .rst-content .wy-alert-info.danger .admonition-title, .rst-content .wy-alert-info.error .admonition-title, .rst-content .wy-alert-info.hint .admonition-title, .rst-content .wy-alert-info.important .admonition-title, .rst-content .wy-alert-info.tip .admonition-title, .rst-content .wy-alert-info.warning .admonition-title, .rst-content .seealso .admonition-title, .rst-content .wy-alert-info.admonition-todo .admonition-title {
background: #0071c5; background: #5da0d2;
} }
.wy-alert.wy-alert-success, .rst-content .wy-alert-success.note, .rst-content .wy-alert-success.attention, .rst-content .wy-alert-success.caution, .rst-content .wy-alert-success.danger, .rst-content .wy-alert-success.error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .wy-alert-success.warning, .rst-content .wy-alert-success.seealso, .rst-content .wy-alert-success.admonition-todo { .wy-alert.wy-alert-success, .rst-content .wy-alert-success.note, .rst-content .wy-alert-success.attention, .rst-content .wy-alert-success.caution, .rst-content .wy-alert-success.danger, .rst-content .wy-alert-success.error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .wy-alert-success.warning, .rst-content .wy-alert-success.seealso, .rst-content .wy-alert-success.admonition-todo {
...@@ -697,10 +697,6 @@ button::-moz-focus-inner, input::-moz-focus-inner { ...@@ -697,10 +697,6 @@ button::-moz-focus-inner, input::-moz-focus-inner {
padding: 0; padding: 0;
} }
button[disabled] {
cursor: default;
}
.btn { .btn {
/* Structure */ /* Structure */
display: inline-block; display: inline-block;
...@@ -709,13 +705,13 @@ button[disabled] { ...@@ -709,13 +705,13 @@ button[disabled] {
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
font-size: 100%; font-size: 123%;
padding: 6px 12px 8px 12px; padding: 7px 13px 9px 13px;
color: #fff; color: #fff;
border: 1px solid rgba(0, 0, 0, 0.1); border: 1px solid rgba(0, 0, 0, 0.1);
background-color: #27AE60; background-color: #c1c7d7;
text-decoration: none; text-decoration: none;
font-weight: normal; font-weight: bolder;
font-family: "NeoSansIntel", "RobotoSlab", Arial, sans; font-family: "NeoSansIntel", "RobotoSlab", Arial, sans;
box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
outline-none: false; outline-none: false;
...@@ -733,12 +729,12 @@ button[disabled] { ...@@ -733,12 +729,12 @@ button[disabled] {
} }
.btn-hover { .btn-hover {
background: #2e8ece; background: #dbe0ee;
color: #fff; color: #fff;
} }
.btn:hover { .btn:hover {
background: #2cc36b; background: #c38f4a;
color: #fff; color: #fff;
} }
.btn:focus { .btn:focus {
...@@ -752,31 +748,6 @@ button[disabled] { ...@@ -752,31 +748,6 @@ button[disabled] {
.btn:visited { .btn:visited {
color: #fff; color: #fff;
} }
.btn:disabled {
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
filter: alpha(opacity=40);
opacity: 0.4;
cursor: not-allowed;
box-shadow: none;
}
.btn-disabled {
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
filter: alpha(opacity=40);
opacity: 0.4;
cursor: not-allowed;
box-shadow: none;
}
.btn-disabled:hover, .btn-disabled:focus, .btn-disabled:active {
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
filter: alpha(opacity=40);
opacity: 0.4;
cursor: not-allowed;
box-shadow: none;
}
.btn::-moz-focus-inner { .btn::-moz-focus-inner {
padding: 0; padding: 0;
...@@ -886,7 +857,7 @@ button[disabled] { ...@@ -886,7 +857,7 @@ button[disabled] {
float: left; float: left;
top: 100%; top: 100%;
min-width: 100%; min-width: 100%;
background: #fcfcfc; background: #FDC939;
z-index: 100; z-index: 100;
border: solid 1px #cfd7dd; border: solid 1px #cfd7dd;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1);
...@@ -936,7 +907,7 @@ button[disabled] { ...@@ -936,7 +907,7 @@ button[disabled] {
} }
.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu { .wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu {
background: #fcfcfc; background: #FDC939;
margin-top: 2px; margin-top: 2px;
} }
.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a { .wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a {
...@@ -1529,7 +1500,7 @@ input[type="radio"][disabled], input[type="checkbox"][disabled] { ...@@ -1529,7 +1500,7 @@ input[type="radio"][disabled], input[type="checkbox"][disabled] {
} }
.wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th { .wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th {
font-weight: bold; font-weight: bold;
border-bottom: solid 2px #e1e4e5; border-bottom: solid 1px #c1c7d7;
} }
.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td { .wy-table td, .rst-content table.docutils td, .rst-content table.field-list td {
background-color: transparent; background-color: transparent;
...@@ -1562,7 +1533,7 @@ input[type="radio"][disabled], input[type="checkbox"][disabled] { ...@@ -1562,7 +1533,7 @@ input[type="radio"][disabled], input[type="checkbox"][disabled] {
} }
.wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { .wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
background-color: #f3f6f6; background-color: #eef1f6;
} }
.wy-table-backed { .wy-table-backed {
...@@ -1617,17 +1588,17 @@ input[type="radio"][disabled], input[type="checkbox"][disabled] { ...@@ -1617,17 +1588,17 @@ input[type="radio"][disabled], input[type="checkbox"][disabled] {
} }
a { a {
color: #0071c5; color: #9d6720;
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
} }
a:hover { a:hover {
color: #0071c5; color: #92590c;
text-decoration: underline #c0e4ff; background: #fbf2e6;
} }
a:visited { a:visited {
color: #0071c5; color: #9d6720;
} }
html { html {
...@@ -1638,10 +1609,10 @@ html { ...@@ -1638,10 +1609,10 @@ html {
body { body {
font-family: "RobotoSlab", Sans, sans-serif; font-family: "RobotoSlab", Sans, sans-serif;
font-weight: normal; font-weight: normal;
color: #3f3c3d; color: #31343D;
min-height: 100%; min-height: 100%;
overflow-x: visible; overflow-x: visible;
background: #fcfcfc; background: #f0f0f2;
} }
.wy-text-left { .wy-text-left {
...@@ -1716,7 +1687,7 @@ a.wy-text-neutral:hover { ...@@ -1716,7 +1687,7 @@ a.wy-text-neutral:hover {
h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend {
margin-top: 0.33em; margin-top: 0.33em;
font-weight: 700; font-weight: 700;
font-family: "NeoSansIntel", "RobotoSlab", arial, sans; font-family: "NeoSansIntel", "RobotoSlab", Lato, sans;
} }
p { p {
...@@ -1731,23 +1702,24 @@ p { ...@@ -1731,23 +1702,24 @@ p {
h1 { h1 {
font-size: 153%; font-size: 153%;
color: #585351; color: #393f4d;
} }
h2, .rst-content .toctree-wrapper p.caption { h2, .rst-content .toctree-wrapper p.caption {
font-size: 139%; font-size: 139%;
font-weight: lighter; font-weight: bolder;
color: #826c62; color: #505257;
} }
h3 { h3 {
font-size: 127%; font-size: 127%;
color: #63503c; color: #9ba7c3;
font-weight: lighter;
} }
h4 { h4 {
font-size: 115%; font-size: 115%;
color: #898288; color: #454c5d;
} }
...@@ -1826,7 +1798,7 @@ code.code-large, .rst-content tt.code-large { ...@@ -1826,7 +1798,7 @@ code.code-large, .rst-content tt.code-large {
} }
pre, .codeblock, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'] { pre, .codeblock, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'] {
border: 0.079em solid #ebe9e0; border: 0.079em solid #d1d5e3;
caption-side: bottom; caption-side: bottom;
overflow-x: auto; overflow-x: auto;
font-size: 0.97em; font-size: 0.97em;
...@@ -1856,7 +1828,7 @@ div[class^='highlight'] td.code { ...@@ -1856,7 +1828,7 @@ div[class^='highlight'] td.code {
code, p.caption { code, p.caption {
font-family: "NeoSansIntel-Light", sans, monospace; font-family: "NeoSansIntel-Light", sans, monospace;
color: #585351; color: #393f4d;
font-size: 0.99em; font-size: 0.99em;
line-height: 1.39em; line-height: 1.39em;
} }
...@@ -1871,8 +1843,8 @@ caption-text { ...@@ -1871,8 +1843,8 @@ caption-text {
.code-block-caption { .code-block-caption {
color: #40515d; color: #d1d5e3;
background-color: #c0e4ff; background-color: #393f4d;
padding-right: 0.43em; padding-right: 0.43em;
padding-top: 0.29em; padding-top: 0.29em;
padding-left: 0.11em; padding-left: 0.11em;
...@@ -1892,7 +1864,7 @@ div[class^='highlight'] pre { ...@@ -1892,7 +1864,7 @@ div[class^='highlight'] pre {
} }
.linenodiv pre { .linenodiv pre {
border-right: solid 1px #959595; border-right: solid 1px #31343D;
margin: 0; margin: 0;
padding: 12px 12px; padding: 12px 12px;
font-family: Monaco, Consolas, "Lucida Console", monospace; font-family: Monaco, Consolas, "Lucida Console", monospace;
...@@ -2228,7 +2200,7 @@ div[class^='highlight'] pre { ...@@ -2228,7 +2200,7 @@ div[class^='highlight'] pre {
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 300px; width: 300px;
color: #fcfcfc; color: #FDC939;
background: #1f1d1d; background: #1f1d1d;
border-top: solid 10px #5f5f5f; border-top: solid 10px #5f5f5f;
font-family: "NeoSansIntel", "RobotoSlab", "Helvetica Neue", Arial, sans; font-family: "NeoSansIntel", "RobotoSlab", "Helvetica Neue", Arial, sans;
...@@ -2259,7 +2231,7 @@ div[class^='highlight'] pre { ...@@ -2259,7 +2231,7 @@ div[class^='highlight'] pre {
clear: both; clear: both;
} }
.rst-versions .rst-current-version .fa, .rst-versions .rst-current-version .rst-content .admonition-title, .rst-content .rst-versions .rst-current-version .admonition-title, .rst-versions .rst-current-version .rst-content h1 .headerlink, .rst-content h1 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h2 .headerlink, .rst-content h2 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h3 .headerlink, .rst-content h3 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h4 .headerlink, .rst-content h4 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h5 .headerlink, .rst-content h5 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h6 .headerlink, .rst-content h6 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content dl dt .headerlink, .rst-content dl dt .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content p.caption .headerlink, .rst-content p.caption .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content tt.download span:first-child, .rst-content tt.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .rst-content code.download span:first-child, .rst-content code.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .icon, .rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand { .rst-versions .rst-current-version .fa, .rst-versions .rst-current-version .rst-content .admonition-title, .rst-content .rst-versions .rst-current-version .admonition-title, .rst-versions .rst-current-version .rst-content h1 .headerlink, .rst-content h1 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h2 .headerlink, .rst-content h2 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h3 .headerlink, .rst-content h3 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h4 .headerlink, .rst-content h4 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h5 .headerlink, .rst-content h5 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h6 .headerlink, .rst-content h6 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content dl dt .headerlink, .rst-content dl dt .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content p.caption .headerlink, .rst-content p.caption .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content tt.download span:first-child, .rst-content tt.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .rst-content code.download span:first-child, .rst-content code.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .icon, .rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand {
color: #fcfcfc; color: #FDC939;
} }
.rst-versions .rst-current-version .fa-book, .rst-versions .rst-current-version .icon-book { .rst-versions .rst-current-version .fa-book, .rst-versions .rst-current-version .icon-book {
float: left; float: left;
...@@ -2299,7 +2271,7 @@ div[class^='highlight'] pre { ...@@ -2299,7 +2271,7 @@ div[class^='highlight'] pre {
.rst-versions .rst-other-versions dd a { .rst-versions .rst-other-versions dd a {
display: inline-block; display: inline-block;
padding: 6px; padding: 6px;
color: #fcfcfc; color: #FDC939;
} }
.rst-versions.rst-badge { .rst-versions.rst-badge {
width: auto; width: auto;
...@@ -2432,7 +2404,7 @@ div[class^='highlight'] pre { ...@@ -2432,7 +2404,7 @@ div[class^='highlight'] pre {
display: block; display: block;
margin: 0 0 24px 24px; margin: 0 0 24px 24px;
padding: 24px; padding: 24px;
background: #f3f6f6; background: #31343D;
border: solid 1px #e1e4e5; border: solid 1px #e1e4e5;
} }
.rst-content .sidebar p, .rst-content .sidebar ul, .rst-content .sidebar dl { .rst-content .sidebar p, .rst-content .sidebar ul, .rst-content .sidebar dl {
...@@ -2445,7 +2417,7 @@ div[class^='highlight'] pre { ...@@ -2445,7 +2417,7 @@ div[class^='highlight'] pre {
display: block; display: block;
font-family: "NeoSansIntel", 'RobotoSlab', arial, sans-serif; font-family: "NeoSansIntel", 'RobotoSlab', arial, sans-serif;
font-weight: bold; font-weight: bold;
background: #e1e4e5; background: #31343D;
padding: 6px 12px; padding: 6px 12px;
margin: -24px; margin: -24px;
margin-bottom: 24px; margin-bottom: 24px;
...@@ -2547,8 +2519,8 @@ div[class^='highlight'] pre { ...@@ -2547,8 +2519,8 @@ div[class^='highlight'] pre {
font-family: monospace; font-family: monospace;
line-height: normal; line-height: normal;
background: white; background: white;
color: #0071c5; color: #c38f4a;
border-top: solid 0.31em #0071c5; border-top: solid 0.31em #c38f4a;
padding: 6px; padding: 6px;
position: relative; position: relative;
} }
...@@ -2569,8 +2541,8 @@ div[class^='highlight'] pre { ...@@ -2569,8 +2541,8 @@ div[class^='highlight'] pre {
.function { .function {
border-right: dashed 0.19em #eac98a; border-right: dashed 0.19em #eac98a;
border-bottom: solid 0.23em #d8a36b; border-bottom: solid 0.23em #c38f4a;
border-top: solid 0.27em #d8a36b; border-top: solid 0.27em #c38f4a;
background: #f0ece1; background: #f0ece1;
} }
...@@ -2718,12 +2690,7 @@ span[id*='MathJax-Span'] { ...@@ -2718,12 +2690,7 @@ span[id*='MathJax-Span'] {
font-weight: 500; font-weight: 500;
src: local("RobotoSlab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype"); src: local("RobotoSlab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype");
} }
@font-face {
font-family: "NanumGothic Coding";
font-style: normal;
font-weight: 700;
src: local("NanumGothicCoding Bold"), local("NanumGothicCoding-Bold"), url(../fonts/NanumGothicCoding-Bold.ttf) format("truetype");
}
.wy-affix { .wy-affix {
position: fixed; position: fixed;
...@@ -2770,35 +2737,37 @@ span[id*='MathJax-Span'] { ...@@ -2770,35 +2737,37 @@ span[id*='MathJax-Span'] {
height: 35.2px; height: 35.2px;
display: inline-block; display: inline-block;
line-height: 44.8px; line-height: 44.8px;
padding: 0 1.618em; padding: 0.1 0.1 em;
margin-left: 0.31em;
margin-bottom: 0; margin-bottom: 0;
display: block; display: block;
font-family: "NeoSansIntel", sans; font-family: "NeoSansIntel", sans;
font-weight: bold; font-weight: bolder;
text-transform: uppercase; text-transform: uppercase;
font-size: 80%; font-size: 107%;
color: #fff; color: #abb6cd;
/* background-color: #53607d; */
white-space: nowrap; white-space: nowrap;
} }
.wy-menu-vertical ul { .wy-menu-vertical ul {
margin-bottom: 0; margin-bottom: 0;
} }
.wy-menu-vertical li.divide-top { .wy-menu-vertical li.divide-top {
border-top: solid 1px #7b7064; border-top: solid 1px #d1d5e3;
} }
.wy-menu-vertical li.divide-bottom { .wy-menu-vertical li.divide-bottom {
border-bottom: solid 1px #7b7064; border-bottom: solid 1px #d1d5e3;
} }
.wy-menu-vertical li.current { .wy-menu-vertical li.current {
background: #e3e3e3; background: #d1d5e3;
} }
.wy-menu-vertical li.current a { .wy-menu-vertical li.current a {
color: #959595; color: #31343D;
border-right: solid 1px #c9c9c9; border-right: solid 0px #31343D;
padding: 0.4045em 2.427em; padding: 0.4045em 2.427em;
} }
.wy-menu-vertical li.current a:hover { .wy-menu-vertical li.current a:hover {
background: #d6d6d6; background: #fafbfd;
} }
.wy-menu-vertical li code, .wy-menu-vertical li .rst-content tt, .rst-content .wy-menu-vertical li tt { .wy-menu-vertical li code, .wy-menu-vertical li .rst-content tt, .rst-content .wy-menu-vertical li tt {
border: none; border: none;
...@@ -2813,20 +2782,18 @@ span[id*='MathJax-Span'] { ...@@ -2813,20 +2782,18 @@ span[id*='MathJax-Span'] {
margin-left: -1.2em; margin-left: -1.2em;
font-size: 0.8em; font-size: 0.8em;
line-height: 1.6em; line-height: 1.6em;
color: #4d4d4d; color: #393f4d;
} }
.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a { .wy-menu-vertical li.on a, .wy-menu-vertical li.current > a {
color: #5a5a59; color: #5a5a59;
padding: 0.4045em 1.618em; padding: 0.4045em 1.618em;
position: relative; position: relative;
background: #fcfcfc; background: #fafbfd;
border: none; border: none;
border-bottom: solid 1px #c9c9c9;
border-top: solid 1px #c9c9c9;
padding-left: 1.618em -4px; padding-left: 1.618em -4px;
} }
.wy-menu-vertical li.on a:hover, .wy-menu-vertical li.current > a:hover { .wy-menu-vertical li.on a:hover, .wy-menu-vertical li.current > a:hover {
background: #fcfcfc; background: #fafbfd;
} }
.wy-menu-vertical li.on a:hover span.toctree-expand, .wy-menu-vertical li.current > a:hover span.toctree-expand { .wy-menu-vertical li.on a:hover span.toctree-expand, .wy-menu-vertical li.current > a:hover span.toctree-expand {
color: gray; color: gray;
...@@ -2844,12 +2811,12 @@ span[id*='MathJax-Span'] { ...@@ -2844,12 +2811,12 @@ span[id*='MathJax-Span'] {
display: block; margin-left: 0.33em; padding-left: 0.22em; display: block; margin-left: 0.33em; padding-left: 0.22em;
} }
.wy-menu-vertical li.toctree-l2.current > a { .wy-menu-vertical li.toctree-l2.current > a {
background: #c9c9c9; background: #efeeed;
padding: 0.4045em 2.427em; padding: 0.4045em 2.427em;
} }
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a {
display: block; display: block;
background: #c9c9c9; background: #f0f0f2;
padding: 0.4045em 4.045em; padding: 0.4045em 4.045em;
} }
.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { .wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand {
...@@ -2906,14 +2873,15 @@ span[id*='MathJax-Span'] { ...@@ -2906,14 +2873,15 @@ span[id*='MathJax-Span'] {
color: #e8e8e8; color: #e8e8e8;
} }
.wy-menu-vertical a:hover { .wy-menu-vertical a:hover {
background-color: #4e4a4a; background-color: #fafbfd;
color: #16181e;
cursor: pointer; cursor: pointer;
} }
.wy-menu-vertical a:hover span.toctree-expand { .wy-menu-vertical a:hover span.toctree-expand {
color: #e8e8e8; color: #e8e8e8;
} }
.wy-menu-vertical a:active { .wy-menu-vertical a:active {
background-color: #0071c5; background-color: #c38f4a;
cursor: pointer; cursor: pointer;
color: #fff; color: #fff;
} }
...@@ -2927,11 +2895,11 @@ span[id*='MathJax-Span'] { ...@@ -2927,11 +2895,11 @@ span[id*='MathJax-Span'] {
padding: 0.809em; padding: 0.809em;
margin-bottom: 0.809em; margin-bottom: 0.809em;
z-index: 200; z-index: 200;
background-color: #fcfcfc; background-color: #fafbfd;
text-align: center; text-align: center;
padding: 0.809em; padding: 0.809em;
display: block; display: block;
color: #585351; color: #393f4d;
font-family: "NeoSansIntel-Regular", sans; font-family: "NeoSansIntel-Regular", sans;
margin-bottom: 0.809em; margin-bottom: 0.809em;
} }
...@@ -2952,8 +2920,9 @@ span[id*='MathJax-Span'] { ...@@ -2952,8 +2920,9 @@ span[id*='MathJax-Span'] {
border-radius: 100%; border-radius: 100%;
} }
.wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a { .wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a {
color: #fcfcfc; color: #FAFBFD;
font-size: 100%; font-size: 91%;
font-family: "NeoSansIntel-Light", "IntelClear-Bold", Helvetica, Arial, sans-serif, sans;
font-weight: bold; font-weight: bold;
display: inline-block; display: inline-block;
padding: 4px 6px; padding: 4px 6px;
...@@ -2982,7 +2951,7 @@ span[id*='MathJax-Span'] { ...@@ -2982,7 +2951,7 @@ span[id*='MathJax-Span'] {
} }
.wy-nav .wy-menu-vertical header { .wy-nav .wy-menu-vertical header {
color: #0071c5; color: #c38f4a;
} }
.wy-nav .wy-menu-vertical a { .wy-nav .wy-menu-vertical a {
color: #dadada; color: #dadada;
...@@ -3018,7 +2987,7 @@ span[id*='MathJax-Span'] { ...@@ -3018,7 +2987,7 @@ span[id*='MathJax-Span'] {
} }
.wy-body-for-nav { .wy-body-for-nav {
background-color: #72716f; background-color: #f0f0f2;
background-width: 300px; background-width: 300px;
} }
...@@ -3038,7 +3007,7 @@ span[id*='MathJax-Span'] { ...@@ -3038,7 +3007,7 @@ span[id*='MathJax-Span'] {
overflow-x: hidden; overflow-x: hidden;
overflow-y: hidden; overflow-y: hidden;
min-height: 100%; min-height: 100%;
background: #585351; background: #393f4d;
z-index: 200; z-index: 200;
} }
...@@ -3052,7 +3021,7 @@ span[id*='MathJax-Span'] { ...@@ -3052,7 +3021,7 @@ span[id*='MathJax-Span'] {
.wy-nav-top { .wy-nav-top {
display: none; display: none;
background: #fcfcfc; background: #31343d;
color: #fff; color: #fff;
padding: 0.4045em 0.809em; padding: 0.4045em 0.809em;
position: relative; position: relative;
...@@ -3069,14 +3038,14 @@ span[id*='MathJax-Span'] { ...@@ -3069,14 +3038,14 @@ span[id*='MathJax-Span'] {
clear: both; clear: both;
} }
.wy-nav-top a { .wy-nav-top a {
color: #585351; color: #393f4d;
font-family: "NeoSansIntel-Regular", sans; font-family: "NeoSansIntel-Regular", sans;
} }
.wy-nav-top img { .wy-nav-top img {
margin-right: 12px; margin-right: 12px;
height: 45px; height: 45px;
width: 45px; width: 45px;
background-color: #fcfcfc; background-color: #31343d;
padding: 5px; padding: 5px;
border-radius: 100%; border-radius: 100%;
} }
...@@ -3159,7 +3128,7 @@ footer span.commit code, footer span.commit .rst-content tt, .rst-content footer ...@@ -3159,7 +3128,7 @@ footer span.commit code, footer span.commit .rst-content tt, .rst-content footer
@media screen and (max-width: 768px) { @media screen and (max-width: 768px) {
.wy-body-for-nav { .wy-body-for-nav {
background: #fcfcfc; background: #fafbfd;
} }
.wy-nav-top { .wy-nav-top {
...@@ -3203,12 +3172,12 @@ footer span.commit code, footer span.commit .rst-content tt, .rst-content footer ...@@ -3203,12 +3172,12 @@ footer span.commit code, footer span.commit .rst-content tt, .rst-content footer
} }
@media screen and (min-width: 1400px) { @media screen and (min-width: 1400px) {
.wy-nav-content-wrap { .wy-nav-content-wrap {
background: #fcfcfc; background: #fafbfd;
} }
.wy-nav-content { .wy-nav-content {
margin: 0; margin: 0;
background: #fcfcfc; background: #fafbfd;
} }
} }
@media print { @media print {
......
...@@ -25,6 +25,15 @@ framework developer customize targeted solutions. Experimental APIs to support ...@@ -25,6 +25,15 @@ framework developer customize targeted solutions. Experimental APIs to support
current and future nGraph Backends are also available; see, for example, the current and future nGraph Backends are also available; see, for example, the
section on the :ref:`plaidml_backend`. section on the :ref:`plaidml_backend`.
.. csv-table::
:header: "Backend", "Current nGraph support", "Future nGraph support"
:widths: 35, 10, 10
Intel® Architecture Processors (CPUs), Yes, Yes
Intel® Nervana™ Neural Network Processor™ (NNPs), Yes, Yes
NVIDIA\* CUDA (GPUs), Yes, Some
AMD\* GPUs, Yes, Some
.. _hybrid_transformer: .. _hybrid_transformer:
......
.. buildlb.rst: .. buildlb.rst:
########################### ###############
nGraph Library for backends Build and Test
########################### ###############
This section details how to build the C++ version of the nGraph Library, which This section details how to build the C++ version of the nGraph Library, which
is targeted toward developers working on kernel-specific operations, is targeted toward developers working on kernel-specific operations,
......
...@@ -73,11 +73,11 @@ author = 'Intel Corporation' ...@@ -73,11 +73,11 @@ author = 'Intel Corporation'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '0.15' version = '0.16'
# The Documentation full version, including alpha/beta/rc tags. Some features # The Documentation full version, including alpha/beta/rc tags. Some features
# available in the latest code will not necessarily be documented first # available in the latest code will not necessarily be documented first
release = '0.15.0' release = '0.16.1'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
...@@ -171,7 +171,7 @@ latex_elements = { ...@@ -171,7 +171,7 @@ latex_elements = {
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
(master_doc, 'IntelnGraphlibrary.tex', 'Intel nGraph Library', (master_doc, 'nGraphCompilerStack.tex', 'nGraph Compiler Stack Documentation',
'Intel Corporation', 'manual'), 'Intel Corporation', 'manual'),
] ]
...@@ -181,11 +181,10 @@ latex_documents = [ ...@@ -181,11 +181,10 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
(master_doc, 'intelngraphlibrary', 'Intel nGraph Library', (master_doc, 'ngraphcompiler', 'nGraph Compiler stack',
[author], 1) [author], 1)
] ]
# -- Options for Texinfo output ------------------------------------------- # -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples # Grouping the document tree into Texinfo files. List of tuples
......
...@@ -8,18 +8,6 @@ This section details some of the *configuration options* and some of the ...@@ -8,18 +8,6 @@ This section details some of the *configuration options* and some of the
your system already has a version of nGraph installed with one of our supported your system already has a version of nGraph installed with one of our supported
backends. backends.
.. csv-table::
:header: "Backend", "Current nGraph support", "Future nGraph support"
:widths: 35, 10, 10
Intel® Architecture Processors (CPUs), Yes, Yes
Intel® Nervana™ Neural Network Processor™ (NNPs), Yes, Yes
NVIDIA\* CUDA (GPUs), Yes, Some
:abbr:`Field Programmable Gate Arrays (FPGA)` (FPGAs), Coming soon, Yes
`Movidius`_, Not yet, Yes
Other, Not yet, Ask
Regardless of the framework, after the :doc:`../buildlb` step, a good place Regardless of the framework, after the :doc:`../buildlb` step, a good place
to start usually involves making the libraries available to the framework. On to start usually involves making the libraries available to the framework. On
Linux\* systems built on Intel® Architecture, that command tends to looks Linux\* systems built on Intel® Architecture, that command tends to looks
......
...@@ -19,17 +19,26 @@ ...@@ -19,17 +19,26 @@
ONNX Support ONNX Support
============ ============
nGraph is able to import and execute ONNX models. Models are converted to nGraph's internal representation and converted to ``Function`` objects, which can be compiled and executed on one of nGraph's backends.
You can use nGraph's Python API to run an ONNX model and nGraph can be used as an ONNX backend using the add-on package `nGraph-ONNX <ngraph_onnx>`_. nGraph is able to import and execute ONNX models. Models are converted to
nGraph's internal representation and converted to ``Function`` objects, which
can be compiled and executed on one of nGraph's backends.
.. note:: In order to support ONNX, nGraph must be built with the ``NGRAPH_ONNX_IMPORT_ENABLE`` flag. See `Building nGraph-ONNX <ngraph_onnx_building>`_ for more information. All nGraph packages published on PyPI are built with ONNX support. You can use nGraph's Python API to run an ONNX model and nGraph can be used
as an ONNX backend using the add-on package `nGraph-ONNX <ngraph_onnx>`_.
.. note:: In order to support ONNX, nGraph must be built with the
``NGRAPH_ONNX_IMPORT_ENABLE`` flag. See `Building nGraph-ONNX
<ngraph_onnx_building>`_ for more information. All nGraph packages
published on PyPI are built with ONNX support.
Installation Installation
------------ ------------
In order to prepare your environment to use nGraph and ONNX, install the Python packages for nGraph, ONNX and NumPy: To prepare your environment to use nGraph and ONNX, install the Python packages
for nGraph, ONNX and NumPy:
:: ::
...@@ -48,7 +57,8 @@ For example ResNet-50: ...@@ -48,7 +57,8 @@ For example ResNet-50:
$ tar -xzvf resnet50.tar.gz $ tar -xzvf resnet50.tar.gz
Use the following Python commands to convert the downloaded model to an nGraph ``Function``: Use the following Python commands to convert the downloaded model to an nGraph
``Function``:
.. code-block:: python .. code-block:: python
...@@ -65,14 +75,16 @@ Use the following Python commands to convert the downloaded model to an nGraph ` ...@@ -65,14 +75,16 @@ Use the following Python commands to convert the downloaded model to an nGraph `
<Function: 'resnet50' ([1, 1000])> <Function: 'resnet50' ([1, 1000])>
This creates an nGraph ``Function`` object, which can be used to execute a computation on a chosen backend. This creates an nGraph ``Function`` object, which can be used to execute a
computation on a chosen backend.
Running a computation Running a computation
--------------------- ---------------------
You can now create an nGraph ``Runtime`` backend and use it to compile your ``Function`` to a backend-specific ``Computation`` object. You can now create an nGraph ``Runtime`` backend and use it to compile your
Finally, you can execute your model by calling the created ``Computation`` object with input data. ``Function`` to a backend-specific ``Computation`` object. Finally, you can
execute your model by calling the created ``Computation`` object with input
data:
.. code-block:: python .. code-block:: python
...@@ -94,7 +106,8 @@ Finally, you can execute your model by calling the created ``Computation`` objec ...@@ -94,7 +106,8 @@ Finally, you can execute your model by calling the created ``Computation`` objec
... ...
You can find more information about nGraph and ONNX in the `nGraph-ONNX <ngraph_onnx>`_ GitHub repository. Find more information about nGraph and ONNX in the
`nGraph-ONNX <ngraph_onnx>`_ GitHub repository.
.. _ngraph_onnx: https://github.com/NervanaSystems/ngraph-onnx/ .. _ngraph_onnx: https://github.com/NervanaSystems/ngraph-onnx/
......
...@@ -22,15 +22,24 @@ nGraph Compiler stack ...@@ -22,15 +22,24 @@ nGraph Compiler stack
###################### ######################
.. toctree:: `nGraph`_ is an open-source graph compiler for :abbr:`Artificial Neural Networks (ANNs)`.
:maxdepth: 1 The nGraph Compiler stack provides an inherently efficient graph-based compilation
infrastructure designed to be compatible with the many of the upcoming
:abbr:`Application-Specific Integrated Circuits (ASICs)`, like the Intel® Nervana™
Neural Network Processor (Intel® Nervana™ NNP), while also unlocking a massive
performance boost on any existing hardware targets in your neural network: both GPUs
and CPUs. Using its flexible infrastructure, you will find it becomes much easier
to create Deep Learning (DL) models that can adhere to the "write once, run anywhere"
mantra that enables your AI solutions to easily go from concept to production to scale.
project/introduction.rst Frameworks using nGraph to execute workloads have shown `up to 45X`_ performance
boost compared to native implementations. For a high-level overview, see the
:doc:`project/introduction`.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:caption: Framework Support :caption: Connecting Frameworks
frameworks/index.rst frameworks/index.rst
frameworks/validated/list.rst frameworks/validated/list.rst
...@@ -41,16 +50,16 @@ nGraph Compiler stack ...@@ -41,16 +50,16 @@ nGraph Compiler stack
:maxdepth: 1 :maxdepth: 1
:caption: nGraph Core :caption: nGraph Core
buildlb.rst
core/overview.rst core/overview.rst
core/fusion/index.rst core/fusion/index.rst
nGraph Core Ops <ops/index.rst> nGraph Core Ops <ops/index.rst>
core/constructing-graphs/index.rst core/constructing-graphs/index.rst
core/passes/passes.rst core/passes/passes.rst
buildlb.rst
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:caption: Python API :caption: nGraph Python API
python_api/index.rst python_api/index.rst
...@@ -65,7 +74,7 @@ nGraph Compiler stack ...@@ -65,7 +74,7 @@ nGraph Compiler stack
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:caption: Distributed training :caption: Distributed Training
distr/index.rst distr/index.rst
...@@ -83,13 +92,14 @@ nGraph Compiler stack ...@@ -83,13 +92,14 @@ nGraph Compiler stack
:maxdepth: 1 :maxdepth: 1
:caption: Tutorials :caption: Tutorials
tutorials/index.rst nGraph.ai Tutorials <https://www.ngraph.ai/tutorials>
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:caption: Project Metadata :caption: Project Metadata
project/introduction.rst
project/release-notes.rst project/release-notes.rst
project/contribution-guide.rst project/contribution-guide.rst
project/governance.rst project/governance.rst
...@@ -102,3 +112,9 @@ Indices and tables ...@@ -102,3 +112,9 @@ Indices and tables
* :ref:`search` * :ref:`search`
* :ref:`genindex` * :ref:`genindex`
.. _nGraph: https://www.ngraph.ai
.. _up to 45X: https://ai.intel.com/ngraph-compiler-stack-beta-release/
\ No newline at end of file
...@@ -118,14 +118,6 @@ expand your network's hardware. Each integration is unique to the framework ...@@ -118,14 +118,6 @@ expand your network's hardware. Each integration is unique to the framework
and its set of deep learning operators, its view on memory layout, its and its set of deep learning operators, its view on memory layout, its
feature set, etc. feature set, etc.
.. _figure-B:
.. figure:: ../graphics/intro_kernel_to_fw_accent.png
:width: 555px
:alt:
Each of these connections represents significant work for what will
ultimately be a brittle setup that is enormously expensive to maintain.
nGraph solves this problem with nGraph bridges. A bridge takes a computational nGraph solves this problem with nGraph bridges. A bridge takes a computational
graph and reconstructs it in the nGraph IR with a few primitive nGraph graph and reconstructs it in the nGraph IR with a few primitive nGraph
...@@ -146,12 +138,16 @@ of each parameter for each operation. In the past, the number of required ...@@ -146,12 +138,16 @@ of each parameter for each operation. In the past, the number of required
kernels was limited, but as the AI research and industry rapidly develops, the kernels was limited, but as the AI research and industry rapidly develops, the
final product of required kernels is increasing exponentially. final product of required kernels is increasing exponentially.
.. _figure-C: .. _figure-B:
.. figure:: ../graphics/intro_kernel_explosion.png .. figure:: ../graphics/intro_kernel_explosion.png
:width: 555px :width: 555px
:alt: :alt:
Each of these connections represents significant work for what will
ultimately be a brittle setup that is enormously expensive to maintain.
PlaidML addresses the kernel explosion problem in a manner that lifts a heavy PlaidML addresses the kernel explosion problem in a manner that lifts a heavy
burden off kernel developers. It automatically lowers networks from nGraph burden off kernel developers. It automatically lowers networks from nGraph
......
.. tutorials/index: .. tutorials/index:
.. This will hold the organization of the tutorials we put on ngraph.ai
.. it will need to be organized in a way that is navigable for the many kinds of frameworks and backends we support in the "Compiler stack". It will need to be workable with a sitemap structure. The initial example is for the latest nGraph-TensorFlow bridge.
:orphan:
########## ##########
Tutorials Tutorials
########## ##########
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment