forked from karpathy/nanoGPT
-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added core_array code and activation function code #185
Open
zymeng3001
wants to merge
121
commits into
ReaLLMASIC:master
Choose a base branch
from
zymeng3001:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ructured packets of data used in different parts of the system
element-wise floating-point addition of two input data sets using pipeline
This module defines a parameterized global SRAM with configurable data width and depth, handling read and write operations using clock, address, and control signals. It instantiates a single-port memory (mem_sp) to perform the actual memory operations.
This module implements a clock divider that progressively divides an input clock signal by powers of two, from 2 up to 2048, with each divided clock driving the next stage.
This PLL module outputs a clock signal, clk_out, based on a 4-bit input configuration clk_cfg. The output clock is set to 1 if any of the configuration bits are high; otherwise, it is set to 0.
This Verilog module defines a controller for managing operations such as memory access, vector engine operations, and dataflow within a system, handling components like weight loading, attention mechanisms, and compute logic for Q, K, and V generations. It uses multiple finite state machines, counters, and control signals to manage the data flow between memory, global SRAM, and buffers, coordinating the execution of tasks across various stages of nanoGPT.
The current controller improves memory and buffer usage by limiting connections to necessary cores, optimizing Q write-back across different SRAMs, and disabling the ping-pong mechanism for residual paths. Additionally, it introduces more efficient attention operations with refined counters and interleaving logic to enhance data reuse and parallelism across heads during computation.
controller_bak.sv uses fixed values for parameters like CORE_ADDR_CNT and ABUF_CNT, while the earlier controllers calculate these dynamically. Additionally, controller_bak.sv has more detailed FSM logic and counter management, especially for handling QGEN, KGEN, VGEN, and attention operations
Module for SPI master functionality, handling data transmission as the master device.
SPI_SLAVE_TOP.sv: Top-level module for SPI slave, integrating various slave components. SPI_Slave.v: Module for the core functionality of an SPI slave. SPI_Slave_org.v: Original version of the SPI slave module, possibly kept for reference or testing. SPI_TOP_QIRUI.sv: Top-level module for the SPI system, integrating both master and slave components.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.