Theodor’s Status Report for April 11


This week I’ve been working on the FPU Job Manager Operations. I’ve been following my previous process of describing the FSM control signals state-by-state, then simply copying them over into SystemVerilog. Here’s what I have so far:

Operation Described? Implemented? Testbench?
Linear Forward Yes Yes Yes
Linear Backward Yes Yes
Linear Weight Gradient Yes Yes
Linear Bias Gradient Yes Yes
Convolution Forward Yes
Convolution Backward Yes Yes
Convolution Weight Gradient Yes
Convolution Bias Gradient Yes
MaxPool Forward Yes
MaxPool Backward
ReLU Forward Yes
ReLU Backward Yes
Softmax Forward
Softmax Backward
Cross-Entropy Backward
Flatten Forward Yes
Flatten Backward Yes Yes
Parameter Update Yes

Last week, I had the Convolutional Forward and Linear Forward operations described, and only the Linear Forward operation implemented.

I’ve consolidated all of the weight and bias operations into a single “Parameter Update” operation, since they’re all the exact same and the shape of each tensor can be read from memory.

Another work-around I’m implementing is for the Softmax Backward operation. I haven’t been able to find a working floating-point exponent calculator in Verilog, so in the case that I’m unable to find one, I will simply subtract the output from the label, which in terms of optimization will have the same effect as taking the backwards gradient of the softmax direction.

Schedule & Accomplishments for Next Weeks

I’ll be finishing up the FPU Job Manager operations over the next couple days, then preparing the Model Manager for the Demo.

Leave a Reply

Your email address will not be published. Required fields are marked *