Machine Learning Paper Reading Notes #03: meProp: Sparsified Back Propagation for Accelerated Deep Learning with Reduced Overfitting The paper "meProp: Sparsified Back Propagation for Accelerated Deep Learning with Reduced Overfitting" from ICML 2017 by researchers at Peking University. This paper presents a technique to speed up machine learning model training
Paper Paper Reading Notes #02: Towards Fully Sparse Training: Information Restoration with Spatial Similarity Computation graph from original paperPruning is a popular technique for reducing the size of deep neural networks without sacrificing accuracy. However, traditional pruning methods can be computationally expensive and lack to hardware support.
Paper Paper Reading Notes #01: Attention Is All You Need This is a new series of my notes on paper reading, covering various areas in computer architecture, algorithms, and machine learning. The first paper is Attention Is All You Need from Google that
IoT Running ARM FVP with Linux This post begins with a goal to compile and run some assembly programs in AA64 on ARMv8-A architecture for students in a microcontroller course. My prior solution to this was failing so I
C++ STL notes Vector reserve() and resize() are different reserve() change the capacity of the vector can hold, has no effect on the current items/does not change the size of the vector Need to use
OpenGL Learning Note Before allOpenGL SiteOpenGL WikiOpenGL drawing process Read obj file from vertices vector Vertex Buffer Object (VBO) Generate vertex buffer object Copy the vertices vector to the VBO (reside in GPU memory) First need
GPU SST Learning Note Before allKey interfaces SST::Component: basic class for simulation objects SST::Event: interactions between components or recurring events like component clock ticks Event class can have handler with form of void func(Event*
FPGA FPGA Log #01: Include header files for simulation After finish writing my SystemVerilog code and being able to compile them successfully in Quartus Prime, I decided to launch the simulation to verify whether my design was sound. However, during the simulation
FPGA FPGA Log #00: Setting up the environment I currently have a Altera Cyclone IV FPGA development board and since it is winter break, I decided to code some SystemVerilog modules on it to refresh my RTL design skill.Install Quartus
ESP32 ESP32 Development Log 01: WiFi Latency Testing The current project I am working is related to real-time control with ESP32 over wireless interface. Naturally I would like to use the WiFi onboard directly as it will not require an extra
AMD SURF Week 6-9: AMD GCN3 Traces and Accel-Sim Okay this is a rather long post, which covers what I did in the past four weeks to run the AMD GCN3 traces on Accel-Sim.The plan was to map AMD GCN3 instructions
GPU SURF Week 4 - 5: Trace format and MGPUSim Investigation So for my research project, we need to generate hardware traces from AMD GPU hardware. However, due to limitations of software tool, if we want to do it, we would have to make
GPU SURF Week 3: AMD GPU Hardware Tracing Tools Since my research involves aquiring actual hardware traces executed by the AMD GPUs, I looked for tools provided by AMD ROCm platform initially to see if there are tools like the NVIDIA NVBit
GPU SURF Week 2: First Taste on GPU Simulator This week, what I did primarily is to familiarize with the existing GPGPU-Sim framework and run certain tests on it. Instead of focusing on the lower level details like how to run the
ESP32 ESP32 Development Log 00: Environment Setup This is a continuation of the the blog series of ESP8266 development here, which at the end I concluded that I will be switching over to the ESP32 platform due to the lack
Hardware ESP8266 Development Log 00: Environment Setup As for my undergraduate senior design project, my team and I decided to use ESP8266 as the main controller due to its availability of the WiFi module. In order to evaluate whether it
SURF SURF Week 1: GPU Architecture and CUDA Introduction Since the SURF project I enrolled in involving works related to GPU, the first series of tasks assigned to me were to get familiar with GPU and CUDA programming as I did not
Random On learning from a scheduling mistake Okay so today is not quite a pleasant day for me: I accidentally schedule my research group meeting with the pick-up key meeting side-by-side and missed the first research group meeting.The key
Random What are the Purposes of Academic Tests? Intro Before entering today's topic, let us first count the tests I took in order to enter an American university: Four SAT tests with essays Two SAT II tests Seven AP (Advanced Placement)
SURF SURF Week 0: Getting started with Accel-Sim During the summer period this year, I will participate in the Purdue University SURF program and working in the Accel-Sim project, so I feel like to compose a weekly development blog series to
FPGA Installing USB-Blaster Driver for Quartus on Ubuntu 16.04 For Ubuntu 16.04, to setup USB Blaster driver, create a file /etc/udev/rules.d/ and insert the following lines: # USB Blaster SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device"
Hardware Installing WaveForms on Ubuntu WaveForms is a software built by Digilent to accompany their Analog Discovery 2 device, which is an all-in-one FPGA-based electronic tool that includes power supply, function generator, oscilloscope, digital pins control, etc. To
Getting Started Using Markdown What is Markdown Markdown is a simple markup language use widely. How to Markdown You can click Simple Guide from GitHub for throughout information Or master the syntax listed In-text formatting # Header -&
Hardware Hello Verilog: Coding Today, we will be using Verilog, a HDL (hardware description language) to code an encoder to light up a seven segment display based on keymap input. First of all, create a file name
Linux Using cron on Linux to run scheduled tasks "Cron is a time-based job scheduler in Unix-like computer operating systems." -- From Wikipedia To run scripts periodically, first you will need to create your own crontab file that states at