VSC-GPU: A Selenium-based VS Code Extension For Local Edit and Cloud Compilation on WebGPU
Understanding the ArchitectureIf you’re interested in this project and want to contribute to it, please take a look at my paper first. The paper was submitted to ICFTIC 2022 and you must cite this paper and the original paper of WebGPU if you want to build upon the VCS-WebGPU system.
There are 2 versions of paper. To get a quick review, please refer to the published paper at https://ieeexplore.ieee.org/abstract/document/9647189. To get a detailed insight (full version), turn to my blog to get access to it. This variance is due to the fact that conference inprocedings require the page limit to be 4 so only a very limited amount of work was shown to global people. IntroductionRecently, programming on the Web is developing quickly, and SaaS has never been so popular. In UIUC, WebGPU is developed for ECE408 (Applied Parallel Programming) students to write, compile, and debug their code. However, as the architecture for WebGPU is not yet fully developed, and because of the natural difficulty to render code on HTML pages, we can observe that many students complain about this interface and they try to use other methods to code. On the other side, VS Code has never been so popular because of its strong support for every language and its huge extension community. VS Code is also strong because it's pure editor, so it's compatible to all of the operating systems, including Windows, Mac, Linux, etc. I hereby, introduce a VS Code Extension called ECE 408 Remote Control, which allows students to use their code created locally, using VS Code as the editor with decent syntax highlighting systems, and use the extension for posting the code back onto the WebGPU website, automatically running the tests online, and show the results on the Chrome browser. KEEP IT OPEN-SOURCEAs a steady supporter of the open source software movement, for most of the time I'd like to make my softwares open. Therefore, this extension is under the The GNU General Public License. If you want to make any form of edit to it, please make sure you keep it open source. Getting startedBefore you can use the extension, there are some setting-up steps to follow. Create Your Working fileWhen starting, you should use the VS Code to open your
Note that you must use Install ECE408 Remote Control ExtensionTo set up the working environment, you need to install my extension first. After you install it, you can see the interface as shown below. Please click on the "security" and trust my extension button if it is not yet trusted. Install the shell dependencies
Install the Chrome driverYou also need to install Before startedBefore you install the chromedriver, you should have: Then you need to install the Check for the right version of ChromePlease open the current Chrome (if you have) and check which version you're in. For example, mine is 94.0.4606. Download the correct version of chromedriverGo to the download website to download the correct version of ChromeDriver. If you're using Windows, make sure you download the Windows version. I'm using Mac, so I'll download the Mac version. After downloading, please unzip the file and move it to your system PATH. Then please check whether you've successfully installed your chromedriver. If you see the feedback below, you're all set. Notes:
Install the other extensionIn your VS Code workspace, please install the following extensions:
Network connectionFor students in China, make sure you’re equipped with a VPN so that you can gain a fast connection with the WebGPU server held in UIUC. Working steps
Note that the Canonical Press means you need to firstly press the combined keys ConfigAfter creating the working file ( Then please open the For the LoginThis part is fully automated. Just type in PullThis part is fully automated. Just type in PushThis part is fully automated. Just type in ExitThis part is to simply exit the Chrome browser and shut down the Internet connection to keep your account safe. Trouble-shooting
Possible Improvements
Issue ReportIf you find an issue or have some more features to request, please reply on the Github Issues Page. Please do NOT post it on CampusWire, which is dedicated for course-related contents. ContributionsIf you want to contribute to the code, please contact Haob.19@intl.zju.edu.cn to send pull requests to the GitHub Repo. Before you start, please make sure you’ve already completed all steps in the requirements part. Set up your working environmentIf you want to test your code after you make refinements to my code, please make sure there are no bugs. To debug, use the framework provided by Microsoft VS Code.
Renew the Extension VersionTo renew versions on the VS Code Extension Marketplace, please type
AcknowledgementsI need to express my greatest thanks to Professor Kindratenko, who encouraged me to go on with this VS Code extension. I also need to thank TA Andrew Schuh, who is also the maintainer of WebGPU, who provided me with the web API for the Although all people mentioned above did not contributed directly to any part of this extension, they provided me with the greatest warmth and appreciation, without which I cannot develop such a functional tool. Thanks to all of you! Release NotesFor the Release Notes part, please refer to CHANGELOG for details. |