-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path17fadc39.9ffe787d.js
More file actions
1 lines (1 loc) · 16.6 KB
/
17fadc39.9ffe787d.js
File metadata and controls
1 lines (1 loc) · 16.6 KB
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{124:function(e,t,a){"use strict";a.r(t);var n=a(0),o=a.n(n),r=a(127),s=a(134),i=(a(128),a(129),a(126)),l=a(95),c=a.n(l),u=a(93),p=a.n(u),m=a(38),d=a.n(m);class h extends o.a.Component{constructor(e){super(e),this.state={opacity:0}}componentDidMount(){this.setState({opacity:1})}_computeDimensions(){const e=.8*document.body.clientWidth,t=e/16*9;return{width:Math.floor(e),height:Math.floor(t)}}_renderBody(){const{width:e,height:t}=this._computeDimensions();return o.a.createElement("div",{className:p.a.videoOverlay,onClick:this.props.onCloseClick,style:{opacity:this.state.opacity}},o.a.createElement("div",{className:"shadow--tl",style:{height:t+"px",width:e+"px",backgroundColor:"#000000"}},o.a.createElement("iframe",{width:e,height:t,src:"https://www.youtube-nocookie.com/embed/qNlIH98vCgY?autoplay=1&modestbranding=1",frameBorder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})))}render(){return d.a.createPortal(this._renderBody(),document.body)}}h.defaultProps={onCloseClick:()=>{}};var y=h,g=a(139);class f extends o.a.Component{constructor(e){super(e),this.state={showCitation:!1,showVideo:!1},this._showCitationClick=this._showCitationClick.bind(this),this._toggleVideo=this._toggleVideo.bind(this)}_showCitationClick(){this.setState({showCitation:!this.state.showCitation})}_toggleVideo(){this.setState({showVideo:!this.state.showVideo})}render(){const{showCitation:e,showVideo:t}=this.state;return o.a.createElement("div",{className:Object(r.a)("container",p.a.paperDetails)},o.a.createElement(b,null),o.a.createElement("button",{onClick:this._toggleVideo,className:"button button--secondary detailsButton"},"Watch the Video"),o.a.createElement("button",{onClick:this._showCitationClick,className:Object(r.a)("button button--secondary detailsButton",e&&"button--active")},e?"Hide Citation":"Show Citation"),e?o.a.createElement(g.a,null):null,t?o.a.createElement(y,{onCloseClick:this._toggleVideo}):null)}}function b(){return o.a.createElement("a",{className:"button button--primary detailsButton",href:"https://dl.acm.org/doi/10.1145/3379337.3415890?cid=99659587236",target:"_blank"},"View Paper")}var v=f;const k={name:"University of Toronto",url:"https://web.cs.toronto.edu"},w={name:"Vector Institute",url:"https://vectorinstitute.ai"};function E(){return o.a.createElement("div",{className:"container"},o.a.createElement("div",{className:c.a.paperTitle},o.a.createElement("h1",null,"Skyline: Interactive In-Editor Computational Performance Profiling for Deep Neural Network Training"),o.a.createElement("p",null,o.a.createElement("a",{className:"modest-link",href:"https://uist.acm.org/uist2020/",target:"_blank"},"Proceedings of the 33rd ACM Symposium on User Interface Software and Technology (UIST'20)"))),o.a.createElement(j,null))}function N(){return o.a.createElement("div",{className:Object(r.a)("container",c.a.paperAbstract)},o.a.createElement("strong",null,"Abstract"),o.a.createElement("p",null,"Training a state-of-the-art deep neural network (DNN) is a computationally-expensive and time-consuming process, which incentivizes deep learning developers to debug their DNNs for computational performance. However, effectively performing this debugging requires intimate knowledge about the underlying software and hardware systems\u2014something that the typical deep learning developer may not have. To help bridge this gap, we present Skyline: a new interactive tool for DNN training that supports in-editor computational performance profiling, visualization, and debugging. Skyline's key contribution is that it leverages special computational properties of DNN training to provide (i) interactive performance predictions and visualizations, and (ii) directly manipulatable visualizations that, when dragged, mutate the batch size in the code. As an in-editor tool, Skyline allows users to leverage these diagnostic features to debug the performance of their DNNs during development. An exploratory qualitative user study of Skyline produced promising results; all the participants found Skyline to be useful and easy to use."))}function C(e){return o.a.createElement("div",{className:Object(r.a)("avatar",c.a.paperAuthor)},o.a.createElement("div",{className:"avatar__intro"},o.a.createElement("h4",{className:"avatar__name"},o.a.createElement("a",{className:"modest-link",href:e.website,target:"_blank"},e.name)),o.a.createElement("small",{className:"avatar__subtitle"},e.affiliations.map(({name:t,url:a},n)=>{const r=o.a.createElement("a",{className:"modest-link",href:a,target:"_blank"},t);return n==e.affiliations.length-1?o.a.createElement("span",{key:a},r):o.a.createElement("span",{key:a},r,", ")}))))}function j(){return o.a.createElement("div",{className:Object(r.a)("row",c.a.authorsList)},o.a.createElement("div",{className:"col col--4"},o.a.createElement(C,{name:"Geoffrey X. Yu",affiliations:[k,w],website:"https://www.geoffreyyu.com"})),o.a.createElement("div",{className:"col col--4"},o.a.createElement(C,{name:"Tovi Grossman",affiliations:[k],website:"https://www.tovigrossman.com"})),o.a.createElement("div",{className:"col col--4"},o.a.createElement(C,{name:"Gennady Pekhimenko",affiliations:[k,w],website:"https://www.cs.toronto.edu/~pekhimenko"})))}t.default=function(){const e=Object(i.a)(),{siteConfig:t={}}=e;return o.a.createElement(s.a,{title:"Research Paper",description:"Details about the Skyline research paper, published at UIST'20."},o.a.createElement("main",null,o.a.createElement(E,null),o.a.createElement(N,null),o.a.createElement(v,null)))}},132:function(e,t,a){"use strict";const n=(e,{target:t=document.body}={})=>{const a=document.createElement("textarea"),n=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const o=document.getSelection();let r=!1;o.rangeCount>0&&(r=o.getRangeAt(0)),t.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let s=!1;try{s=document.execCommand("copy")}catch(i){}return a.remove(),r&&(o.removeAllRanges(),o.addRange(r)),n&&n.focus(),s};e.exports=n,e.exports.default=n},133:function(e,t){e.exports.parse=function(e){var t=e.split(",").map((function(e){return function(e){if(/^-?\d+$/.test(e))return parseInt(e,10);var t;if(t=e.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){var a=t[1],n=t[2],o=t[3];if(a&&o){var r=[],s=(a=parseInt(a))<(o=parseInt(o))?1:-1;"-"!=n&&".."!=n&&"\u2025"!=n||(o+=s);for(var i=a;i!=o;i+=s)r.push(i);return r}}return[]}(e)}));return 0===t.length?[]:1===t.length?Array.isArray(t[0])?t[0]:t:t.reduce((function(e,t){return Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),e.concat(t)}))}},135:function(e,t,a){"use strict";var n=a(2),o=a(0),r=a.n(o),s=a(127),i={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","at-rule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},l={Prism:a(35).a,theme:i};function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}var p=/\r\n|\r|\n/,m=function(e){0===e.length?e.push({types:["plain"],content:"",empty:!0}):1===e.length&&""===e[0].content&&(e[0].empty=!0)},d=function(e,t){var a=e.length;return a>0&&e[a-1]===t?e:e.concat(t)},h=function(e,t){var a=e.plain,n=Object.create(null),o=e.styles.reduce((function(e,a){var n=a.languages,o=a.style;return n&&!n.includes(t)||a.types.forEach((function(t){var a=u({},e[t],o);e[t]=a})),e}),n);return o.root=a,o.plain=u({},a,{backgroundColor:null}),o};function y(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(a[n]=e[n]);return a}var g=function(e){function t(){for(var t=this,a=[],n=arguments.length;n--;)a[n]=arguments[n];e.apply(this,a),c(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var a=e.theme?h(e.theme,e.language):void 0;return t.themeDict=a})),c(this,"getLineProps",(function(e){var a=e.key,n=e.className,o=e.style,r=u({},y(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),s=t.getThemeDict(t.props);return void 0!==s&&(r.style=s.plain),void 0!==o&&(r.style=void 0!==r.style?u({},r.style,o):o),void 0!==a&&(r.key=a),n&&(r.className+=" "+n),r})),c(this,"getStyleForToken",(function(e){var a=e.types,n=e.empty,o=a.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===a[0])return n?{display:"inline-block"}:void 0;if(1===o&&!n)return r[a[0]];var s=n?{display:"inline-block"}:{},i=a.map((function(e){return r[e]}));return Object.assign.apply(Object,[s].concat(i))}})),c(this,"getTokenProps",(function(e){var a=e.key,n=e.className,o=e.style,r=e.token,s=u({},y(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(s.style=void 0!==s.style?u({},s.style,o):o),void 0!==a&&(s.key=a),n&&(s.className+=" "+n),s}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,a=e.language,n=e.code,o=e.children,r=this.getThemeDict(this.props),s=t.languages[a];return o({tokens:function(e){for(var t=[[]],a=[e],n=[0],o=[e.length],r=0,s=0,i=[],l=[i];s>-1;){for(;(r=n[s]++)<o[s];){var c=void 0,u=t[s],h=a[s][r];if("string"==typeof h?(u=s>0?u:["plain"],c=h):(u=d(u,h.type),h.alias&&(u=d(u,h.alias)),c=h.content),"string"==typeof c){var y=c.split(p),g=y.length;i.push({types:u,content:y[0]});for(var f=1;f<g;f++)m(i),l.push(i=[]),i.push({types:u,content:y[f]})}else s++,t.push(u),a.push(c),n.push(0),o.push(c.length)}s--,t.pop(),a.pop(),n.pop(),o.pop()}return m(i),l}(void 0!==s?t.tokenize(n,s,a):[n]),className:"prism-code language-"+a,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(o.Component),f=a(132),b=a.n(f),v=a(133),k=a.n(v),w=a(126),E={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},N=a(130);var C=()=>{const{siteConfig:{themeConfig:{prism:e={}}}}=Object(w.a)(),{isDarkTheme:t}=Object(N.a)(),a=e.theme||E,n=e.darkTheme||a;return t?n:a},j=a(94),x=a.n(j);const T=/{([\d,-]+)}/,O=(e=["js","jsBlock","jsx","python","html"])=>{const t={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},python:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},a=["highlight-next-line","highlight-start","highlight-end"].join("|"),n=e.map(e=>`(?:${t[e].start}\\s*(${a})\\s*${t[e].end})`).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)},S=/title=".*"/;t.a=({children:e,className:t,metastring:a})=>{const{siteConfig:{themeConfig:{prism:i={}}}}=Object(w.a)(),[c,u]=Object(o.useState)(!1),[p,m]=Object(o.useState)(!1);Object(o.useEffect)(()=>{m(!0)},[]);const d=Object(o.useRef)(null);let h=[],y="";const f=C();if(a&&T.test(a)){const e=a.match(T)[1];h=k.a.parse(e).filter(e=>e>0)}a&&S.test(a)&&(y=a.match(S)[0].split("title=")[1].replace(/"+/g,""));let v=t&&t.replace(/language-/,"");!v&&i.defaultLanguage&&(v=i.defaultLanguage);let E=e.replace(/\n$/,"");if(0===h.length&&void 0!==v){let t="";const a=(e=>{switch(e){case"js":case"javascript":case"ts":case"typescript":return O(["js","jsBlock"]);case"jsx":case"tsx":return O(["js","jsBlock","jsx"]);case"html":return O(["js","jsBlock","html"]);case"python":case"py":return O(["python"]);default:return O()}})(v),n=e.replace(/\n$/,"").split("\n");let o;for(let e=0;e<n.length;){const r=e+1,s=n[e].match(a);if(null!==s){switch(s.slice(1).reduce((e,t)=>e||t,void 0)){case"highlight-next-line":t+=r+",";break;case"highlight-start":o=r;break;case"highlight-end":t+=`${o}-${r-1},`}n.splice(e,1)}else e+=1}h=k.a.parse(t),E=n.join("\n")}const N=()=>{b()(E),u(!0),setTimeout(()=>u(!1),2e3)};return r.a.createElement(g,Object(n.a)({},l,{key:p,theme:f,code:E,language:v}),({className:e,style:t,tokens:a,getLineProps:o,getTokenProps:i})=>r.a.createElement(r.a.Fragment,null,y&&r.a.createElement("div",{style:t,className:x.a.codeBlockTitle},y),r.a.createElement("div",{className:x.a.codeBlockContent},r.a.createElement("button",{ref:d,type:"button","aria-label":"Copy code to clipboard",className:Object(s.a)(x.a.copyButton,{[x.a.copyButtonWithTitle]:y}),onClick:N},c?"Copied":"Copy"),r.a.createElement("div",{tabIndex:"0",className:Object(s.a)(e,x.a.codeBlock,{[x.a.codeBlockWithTitle]:y})},r.a.createElement("div",{className:x.a.codeBlockLines,style:t},a.map((e,t)=>{1===e.length&&""===e[0].content&&(e[0].content="\n");const a=o({line:e,key:t});return h.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),r.a.createElement("div",Object(n.a)({key:t},a),e.map((e,t)=>r.a.createElement("span",Object(n.a)({key:t},i({token:e,key:t})))))}))))))}},139:function(e,t,a){"use strict";var n=a(0),o=a.n(n),r=a(93),s=a.n(r),i=a(135),l=a(140),c=a(141);t.a=function(){return o.a.createElement("div",{className:s.a.citationBlock},o.a.createElement(l.a,{defaultValue:"bibtex",values:[{label:"BibTeX",value:"bibtex"},{label:"Plain Text",value:"txt"}]},o.a.createElement(c.a,{value:"bibtex"},o.a.createElement(i.a,{language:"tex"},"@inproceedings{skyline-yu20,\n title = {{Skyline: Interactive In-Editor Computational Performance Profiling\n for Deep Neural Network Training}},\n author = {Yu, Geoffrey X. and Grossman, Tovi and Pekhimenko, Gennady},\n booktitle = {{Proceedings of the 33rd ACM Symposium on User Interface\n Software and Technology (UIST'20)}},\n year = {2020},\n}")),o.a.createElement(c.a,{value:"txt"},o.a.createElement(i.a,{language:"txt"},"Geoffrey X. Yu, Tovi Grossman, and Gennady Pekhimenko.\nSkyline: Interactive In-Editor Computational Performance Profiling for\nDeep Neural Network Training. In Proceedings of the 33rd ACM Symposium\non User Interface Software and Technology (UIST'20). 2020."))))}},140:function(e,t,a){"use strict";var n=a(0),o=a.n(n),r=a(131),s=a(127),i=a(96),l=a.n(i);const c=37,u=39;t.a=function(e){const{block:t,children:a,defaultValue:i,values:p,groupId:m}=e,{tabGroupChoices:d,setTabGroupChoices:h}=Object(r.a)(),[y,g]=Object(n.useState)(i);if(null!=m){const e=d[m];null!=e&&e!==y&&p.some(t=>t.value===e)&&g(e)}const f=e=>{g(e),null!=m&&h(m,e)},b=[];return o.a.createElement("div",null,o.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:Object(s.a)("tabs",{"tabs--block":t})},p.map(({value:e,label:t})=>o.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":y===e,className:Object(s.a)("tabs__item",l.a.tabItem,{"tabs__item--active":y===e}),key:e,ref:e=>b.push(e),onKeyDown:e=>((e,t,a)=>{switch(a.keyCode){case u:((e,t)=>{const a=e.indexOf(t)+1;e[a]?e[a].focus():e[0].focus()})(e,t);break;case c:((e,t)=>{const a=e.indexOf(t)-1;e[a]?e[a].focus():e[e.length-1].focus()})(e,t)}})(b,e.target,e),onFocus:()=>f(e),onClick:()=>f(e)},t))),o.a.createElement("div",{role:"tabpanel",className:"margin-vert--md"},n.Children.toArray(a).filter(e=>e.props.value===y)[0]))}},141:function(e,t,a){"use strict";var n=a(0),o=a.n(n);t.a=function(e){return o.a.createElement("div",null,e.children)}}}]);