Tác giả: donhuvy

  • Chip BKIT ASIC để suy luận mô hình trọng số mở Kimi K3 2,8 tỷ tham số.

    Kimi-K3

    TSMC N3E

    TSMC N3E / 4x XCD Tiles là hai thông số cốt lõi về tiến trình bán dẫn (Process Node)kiến trúc đóng gói vi mạch (Chiplet Architecture) của con chip ASIC BKIT-K3:


    1. TSMC N3E là gì?

    • TSMC (Taiwan Semiconductor Manufacturing Company): Nhà máy gia công đúc chip bán dẫn số 1 thế giới.
    • N3E (3-Nanometer Enhanced): Là tiến trình quang khắc bán dẫn 3nm thế hệ thứ 2 tối ưu của TSMC.
    • Ý nghĩa công nghệ:
    • Mật độ bóng bán dẫn (Transistor Density) cực cao: Giúp nhồi hàng chục tỷ transistor vào một diện tích silicon nhỏ.
    • Hiệu năng & Tiết kiệm điện: Giảm ~32% điện năng tiêu thụ hoặc tăng ~18% hiệu năng xung nhịp (lên 1.8 – 2.0 GHz) so với thế hệ 5nm (N5).
    • Độ hoàn thiện (Yield Rate) cao: Là tiến trình tiêu chuẩn công nghiệp hiện đại đang được dùng trên các chip AI đầu bảng (như Apple M4/A18, Nvidia Blackwell).

    2. 4x XCD Tiles là gì?

    • XCD viết tắt của Accelerator / eXtended Compute Die (Die/Phiến tính toán gia tốc).
    • Kiến trúc Chiplet (Modular Multi-Die): Thay vì chế tạo 1 phiến silicon nguyên khối khổng lồ (Monolithic) rất dễ bị lỗi và đắt đỏ, con chip được chia thành 4 khối tính toán độc lập (Tile 0, 1, 2, 3) ghép nối trên cùng một đế vi mạch 2.5D (CoWoS).

    Bên trong mỗi Tile (XCD) bao gồm:

    1. 16 Lõi Ma trận Systolic (MXU): Chuyên thực hiện phép nhân ma trận FP4/FP8 tốc độ cao.
    2. Bộ xử lý Vector SIMD (VPU): Xử lý các phép toán phi tuyến như RMSNorm, hàm kích hoạt SwiGLU/SiLU và RoPE.
    3. 64 MB bộ nhớ đệm L2 SRAM siêu tốc: Cho phép nạp dữ liệu với băng thông nội bộ lên tới 45 TB/s (4 Tile = 256 MB SRAM).
    4. Bộ định tuyến MoE: Tự động chuyển giao các token tới đúng chuyên gia (Expert).

    💡 Lợi ích của thiết kế này đối với Kimi K3 2.8T:

    Lợi íchGiải thích
    Tối ưu chi phí sản xuất (Yield)Chế tạo 4 die nhỏ có tỷ lệ thành công cao hơn rất nhiều so với 1 die lớn nguyên khối.
    Băng thông siêu khủng4 XCD bao quanh một đế liên kết trung tâm (Base I/O Die), kết nối trực tiếp với 8 kênh nhớ HBM4 đạt 9.6 TB/s mỗi chip.
    Tản nhiệt tốt hơnPhân tán tải tính toán 550W đều khắp 4 góc của con chip, tránh hiện tượng quá nhiệt cục bộ (Hotspots).

    RTL của KV cache

    // =============================================================================
    // Module: kv_cache_engine
    // Description: Hardware Paged-Attention DMA Reader & KV Cache Decompressor.
    //              Optimized for ultra-long context LLM inference (up to 1M tokens)
    //              with sub-cycle address translation and streaming FP4/FP8 decompression.
    // =============================================================================
    
    `timescale 1ns / 1ps
    
    module kv_cache_engine #(
        parameter PAGE_SIZE_TOKENS = 64,       // 64 tokens per physical page block
        parameter KV_CHANNELS      = 16,       // 16 parallel KV channels
        parameter ADDR_WIDTH       = 40,       // 40-bit Physical HBM address (1 TB)
        parameter DATA_WIDTH       = 512       // 512-bit HBM memory bus per channel
    )(
        input  logic                                  clk,
        input  logic                                  rst_n,
        
        // Control & Command Interface
        input  logic                                  req_valid,
        input  logic [15:0]                           req_seq_id,
        input  logic [19:0]                           req_page_id,    // Virtual Page ID
        input  logic [5:0]                            req_token_idx,  // Offset within page (0..63)
        input  logic [1:0]                            decompress_mode,// 00: FP4->FP8, 01: FP8 direct, 10: BF16
        output logic                                  req_ready,
        
        // Page Table Translation Interface (SRAM LUT lookup)
        output logic [19:0]                           pt_lookup_page_id,
        input  logic [ADDR_WIDTH-1:0]                 pt_phys_base_addr,
        input  logic                                  pt_valid,
        
        // Memory Controller / HBM AXI-like Read Interface
        output logic                                  mem_read_req,
        output logic [ADDR_WIDTH-1:0]                 mem_read_addr,
        output logic [7:0]                            mem_read_len,   // Burst length
        input  logic                                  mem_read_ready,
        input  logic                                  mem_read_valid,
        input  logic [DATA_WIDTH-1:0]                 mem_read_data,
        
        // Streaming Decompressed Output to Attention Core
        output logic                                  stream_valid,
        output logic [KV_CHANNELS-1:0][15:0]          stream_k_data,  // 16 parallel key elements (BF16/FP8)
        output logic [KV_CHANNELS-1:0][15:0]          stream_v_data,  // 16 parallel val elements (BF16/FP8)
        input  logic                                  stream_ready
    );
    
        // =========================================================================
        // 1. State Machine: Page Translation -> Memory Fetch -> Decompress & Stream
        // =========================================================================
        typedef enum logic [2:0] {
            IDLE,
            TRANSLATE,
            FETCH_HBM,
            DECOMPRESS,
            STREAM_OUT
        } state_t;
    
        state_t state_r, state_n;
    
        // Registers
        logic [ADDR_WIDTH-1:0] current_phys_addr;
        logic [19:0] page_id_r;
        logic [5:0] token_idx_r;
        logic [1:0] mode_r;
        logic [DATA_WIDTH-1:0] buffer_r;
    
        assign pt_lookup_page_id = page_id_r;
    
        always_ff @(posedge clk or negedge rst_n) begin
            if (!rst_n) begin
                state_r           <= IDLE;
                page_id_r         <= '0;
                token_idx_r       <= '0;
                mode_r            <= '0;
                current_phys_addr <= '0;
                buffer_r          <= '0;
            end else begin
                state_r <= state_n;
                
                if (state_r == IDLE && req_valid) begin
                    page_id_r   <= req_page_id;
                    token_idx_r <= req_token_idx;
                    mode_r      <= decompress_mode;
                end
                
                if (state_r == TRANSLATE && pt_valid) begin
                    // Compute exact token physical byte offset:
                    // Base + token_idx * (latent_dim * bits / 8)
                    current_phys_addr <= pt_phys_base_addr + (token_idx_r << 6);
                end
                
                if (state_r == FETCH_HBM && mem_read_valid) begin
                    buffer_r <= mem_read_data;
                end
            end
        end
    
        // Next State Logic
        always_comb begin
            state_n        = state_r;
            req_ready      = 1'b0;
            mem_read_req   = 1'b0;
            mem_read_addr  = current_phys_addr;
            mem_read_len   = 8'd4; // 4 * 64B = 256 bytes per KV block
            stream_valid   = 1'b0;
            
            case (state_r)
                IDLE: begin
                    req_ready = 1'b1;
                    if (req_valid) state_n = TRANSLATE;
                end
                
                TRANSLATE: begin
                    if (pt_valid) state_n = FETCH_HBM;
                end
                
                FETCH_HBM: begin
                    mem_read_req = 1'b1;
                    if (mem_read_ready && mem_read_valid) begin
                        state_n = DECOMPRESS;
                    end
                end
                
                DECOMPRESS: begin
                    state_n = STREAM_OUT;
                end
                
                STREAM_OUT: begin
                    stream_valid = 1'b1;
                    if (stream_ready) state_n = IDLE;
                end
                
                default: state_n = IDLE;
            endcase
        end
    
        // =========================================================================
        // 2. Hardware Decompression Logic (FP4 E2M1 -> 16-bit BF16/FP8 representation)
        // =========================================================================
        generate
            for (genvar i = 0; i < KV_CHANNELS; i++) begin : gen_decompress
                // Extract 4-bit nibbles from buffer_r
                logic [3:0] k_nibble = buffer_r[i*8 +: 4];
                logic [3:0] v_nibble = buffer_r[i*8+4 +: 4];
                
                // Expand 4-bit FP4 into 16-bit format:
                // {sign, exp[4:0], mantissa[9:0]}
                assign stream_k_data[i] = {k_nibble[3], 5'b10000 + {3'b0, k_nibble[2:1]}, k_nibble[0], 9'b0};
                assign stream_v_data[i] = {v_nibble[3], 5'b10000 + {3'b0, v_nibble[2:1]}, v_nibble[0], 9'b0};
            end
        endgenerate
    
    endmodule
    

    RTL KV cache

    RTL (Register Transfer Level) của KV cache là mô hình thiết kế phần cứng (bằng các ngôn ngữ như Verilog hoặc SystemVerilog) dùng để hiện thực hóa cơ chế lưu trữ và quản lý ma trận Key-Value (K, V) trên các vi mạch tăng tốc AI (như FPGA hoặc ASIC).

    Các thành phần chính trong RTL của KV Cache

    • Hệ thống ngân hàng bộ nhớ (Memory Banks):
      • Chia bộ nhớ (thường là SRAM hoặc eDRAM) thành nhiều bank độc lập (ví dụ: chia thành các nhóm Key MSB, Key LSB, Value MSB, Value LSB).
      • Giúp các luồng đọc/ghi dữ liệu diễn ra song song mà không bị xung đột địa chỉ (bank conflict).

    Đường dữ liệu ống dẫn (Pipelined Datapath):

    • Thiết kế các tầng đệm pipeline (nhiều chu kỳ xung nhịp) để truyền dữ liệu K, V từ bộ nhớ đệm thẳng đến các khối tính toán ma trận (Systolic Array).
    • Đảm bảo băng thông cao và độ trễ thấp cho quá trình giải mã tự hồi quy (autoregressive decoding).

    Bộ điều khiển thay thế/giải phóng (Eviction/Replacement Controller):

    • Mạch logic tuần tự theo dõi số lượng token đang lưu trữ.
    • Quyết định thời điểm xóa hoặc thay thế các token cũ khi dung lượng bộ nhớ đệm trên chip đã đầy (dựa trên chính sách như LRU hoặc nhận diện token quan trọng).
    • Giao tiếp ngoại vi (Interface & DMA):
      • Tích hợp các chuẩn giao tiếp phần cứng như AXI Interconnect hoặc CXL (Compute Express Link) để trao đổi dữ liệu hiệu quả với RAM hệ thống hoặc GPU. [1]
    • Dùng ngôn ngữ Verilog, SystemVerilog hay HLS – High-Level Synthesis.
    • Mục tiêu triển khai trên TSMC 3nm node.

    Nguồn: TSMC

    Thiết kế vật lý và Bố cục silicon

    Thiết kế vật lý của phần tính toán nhân ma trận cốt lõi (GEMM Engine) chạy định dạng NVFP4/FP8

    VERSION 5.8 ;
    BUSBITCHARS "[]" ;
    DIVIDERCHAR "/" ;
    
    MACRO SYSTOLIC_MXU_32X32
      CLASS BLOCK ;
      SIZE 3800.000 BY 3815.000 ;
      SYMMETRY X Y ;
      ORIGIN 0.000 0.000 ;
    
      PIN VDD_CORE
        DIRECTION INOUT ;
        USE POWER ;
        PORT
          LAYER M5 ;
          RECT 0.000 0.000 3800.000 20.000 ;
          RECT 0.000 3795.000 3800.000 3815.000 ;
        END
      END VDD_CORE
    
      PIN VSS
        DIRECTION INOUT ;
        USE GROUND ;
        PORT
          LAYER M5 ;
          RECT 0.000 20.000 3800.000 40.000 ;
          RECT 0.000 3775.000 3800.000 3795.000 ;
        END
      END VSS
    
      PIN clk
        DIRECTION INPUT ;
        USE SIGNAL ;
        PORT
          LAYER M4 ;
          RECT 1890.000 10.000 1910.000 30.000 ;
        END
      END clk
    
      PIN rst_n
        DIRECTION INPUT ;
        USE SIGNAL ;
        PORT
          LAYER M4 ;
          RECT 1850.000 10.000 1870.000 30.000 ;
        END
      END rst_n
    
      PIN weight_in[127:0]
        DIRECTION INPUT ;
        USE SIGNAL ;
        PORT
          LAYER M4 ;
          RECT 100.000 3790.000 3700.000 3810.000 ;
        END
      END weight_in[127:0]
    
      PIN act_in[127:0]
        DIRECTION INPUT ;
        USE SIGNAL ;
        PORT
          LAYER M3 ;
          RECT 10.000 100.000 30.000 3700.000 ;
        END
      END act_in[127:0]
    
      PIN accum_out[1023:0]
        DIRECTION OUTPUT ;
        USE SIGNAL ;
        PORT
          LAYER M4 ;
          RECT 100.000 10.000 3700.000 30.000 ;
        END
      END accum_out[1023:0]
    
      OBS
        LAYER M1 ;
        RECT 0.000 0.000 3800.000 3815.000 ;
        LAYER M2 ;
        RECT 0.000 0.000 3800.000 3815.000 ;
        LAYER M3 ;
        RECT 0.000 0.000 3800.000 3815.000 ;
        LAYER M4 ;
        RECT 0.000 0.000 3800.000 3815.000 ;
      END
    END SYSTOLIC_MXU_32X32
    
    END LIBRARY
    

    FET

    Toàn bộ hệ thống

    Tham khảo

    https://www.tsmc.com/english/dedicatedFoundry/technology/logic/l_3nm

    https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/api/c/gemm.html

    Kết luận

    Con chip này sẽ bị cháy trong khi thử nghiệm. Các kỹ sư TSMC sẽ từ chối đưa vào máy quang khắc. Nguyên nhân là do kiểm soát nhiệt độ ở cấp độ nanomet kiểu này cực kỳ khó. Và 1 con chíp hiện tại, tôi nghĩ không có ít hơn 10 layer theo chiều 3D. Bài viết mang tính chất ôn lại kiến thức của chủ tịch BKIT.VN mà thôi.

  • Đưa tầm nhìn “AI agent kế toán” đi xa hơn: Agent bầy đàn

    Việc AI agent chạy được, thêm, sửa xóa dữ liệu là ok. Giá token AI cũng rẻ rồi, kế toán cứ dùng thoải mái đi. Dùng nhiều cũng không lo. BKIT founder xác nhận như vậy, hãy yên tâm về token AI. Chúng tôi đã làm để nó chạy, nghĩa là chúng tôi có đánh giá về mức chi phí và tính khả thi trong cuộc sống hàng ngày rồi.

    Nguồn: Phi đội máy bay chiến đấu tham gia Trân Châu Cảng. https://www.hiarmymuseumsoc.org/exhibits/hawaiian-warfare


    Tôi thấy tốc độ làm việc của AI agent vẫn khá chậm, nếu mô hình mà độ thông minh thấp, thì tỷ lệ sai chắc tầm khoảng 80% do AI.

    Có 2 điều cần cải thiện:

    • Tốc độ chạy của AI Agent kế toán: Phải tìm cách để nó chạy nhanh hơn. Tôi đang nghĩ đến phương án đưa dữ liệu về cục bộ máy để xử lý.
    • Agent bầy đàn. Trong cùng 1 thời điểm, đặc biệt là kế toán dịch vụ, có agent nhập hóa đơn đầu vào, có agent xuất chứng từ ra để in bản giấy, có agent ký số vào chứng từ, có agent nhập dữ liệu Vật tư, nguyên vật liệu.

    Agent bầy đàn?

    sub-agent

    Đỗ Như Vý – Người sáng lập Phần mềm kế toán BKIT – Sứ mệnh Điều khiển phần mềm kế toán bằng ý muốn, ý định, ngôn ngữ tự nhiên, hình ảnh, video.

    Tham khảo

  • Phím tắt Visual Studio 2026 (18.8.2) Community Edition – Windows 11 Pro

    Với các công ty có quy mô doanh thu dưới 1 triệu USD (hoặc quy đổi tiền ra mức tương đương), dưới 5 nhân viên, ít hơn 250 máy PC, thì được dùng miễn phí. Chứ không phải công ty BKIT.VN đang vi phạm luật bản quyền. Muốn làm ăn lớn, thì phải làm chuẩn chỉ từ đầu.

    Số phiên bản

    Bảng so sánh tính năng https://visualstudio.microsoft.com/vs/compare/

    Ctrl + S: Lưu

    Ctrl + Shift + S: Lưu tất cả các file.

    Alt + F4: Exit

    Gọi từ CMD: devenv

    Product key (trường hợp dùng email của HUST)

    Email HUST

    Mua bản quyền Windows 11 pro tại https://shop.bkit.vn (giá thực tế có thể thường thấp hơn giá niêm yết trên website)

    Ctrl + G: Go to line (14)

    Bôi đen 1 từ, sau đó bấm Shift + Alt + F : Đi tìm từ đó trong mã nguồn.

    Wolverine: https://wolverinefx.net/ , dùng cho Tích hợp Hóa đơn điện tử của các hãng PA việt Nam, Mắt bão, myinvoice, Nascen, Meinvocie, M-invoice, S-invoice Viettel, VNPT-invoice, BKAV invoice.

    Ctrl + E, Ctrl + W: Wrap text

    Show line number?

    Mở thư mục hiện tại

    devenv .

    Ctrl + Q: Bảng lệnh

    Ctrl + A: Chọn tất cả

    Ctrl + / : comment , bỏ comment dòng mã nguồn.


    Ctrl + M, Ctrl + M: Collapse, Expand cụm dòng mã nguồn.

    Ctrl + K, Ctrl + D: Format mã nguồn.

    Ctrl + B: Build

    RTX 5090 trang bị các cổng kết nối gồm DisplayPort 2.1a (3 cổng) và HDMI 2.1 (1 cổng). https://phongvu.vn/cap-ugreen-displayport-2-1-16k-60hz-hdr-dp131-55568-2m–s260602238

    https://hd4k.vn/san-pham/displayport-mini-displayport/cap-displayport-2-1-ho-tro-16k-dai-2m-ugreen-55568-dp131.html

    https://cellphones.com.vn/man-hinh-e-dra-egm27f120s-27-inch.html : Không hỗ trợ DisplayPort 2.1a .

    DisplayPort 2.1a to HDMI https://phanphoiugreen.com/san-pham/thiet-bi-chuyen-doi/displayport-adapter/cap-displayport-to-hdmi-2-0-dai-2m-ho-tro-3d-4k-60hz-ugreen-15774.html

    https://thanhlinh.vn/ugreen-15774

    https://shopee.vn/product/19417109/29968648386 (3 mét)

    WebStorm 2026

    F9: Debug

  • Không phải nộp bản giấy của Phương pháp tính khấu hao TSCĐ từ 22/07/2026 (nộp qua Dịch vụ công, mã 1.008593)

    Thông báo về phương pháp trích khấu hao TSCĐ/ Thông báo
    về việc chuyển lợi nhuận ra nước ngoài từ 22/7/2026 không phải nộp file giấy nữa.

    Dùng mã thủ tục hành chính công 1.008593 để thực hiện việc này.

    Group zalo: https://zalo.me/g/ekqioxaksfhiqwbd6dl1

    Group Facebook hỗ trợ kê khai thuế, kế toán, phần mềm kế toán https://www.facebook.com/groups/238330069184113

    Nhóm tư vấn, hỗ trợ kế toán, thuế BKIT.VN


    Xem video agent hoạt động với OpenAI (ChatGPT) Codex (beta) tại https://ketoan.bkit.vn/2026/07/07/agent-skill-cho-phan-mem-ke-toan-bkit/ (bấm nút play video ở cuối trang). Streaming trực tiếp từ hệ thống https://file.bkit.vn không qua Youtube.


    Mua Windows 11 không crack tại https://shop.bkit.vn/

    Hóa đơn VAT + Cài đặt và kích hoạt (rất phức tạp, BKIT làm miễn phí) + Hợp đồng kinh tế + Biên bản giao nhận


    Từ 10/9, doanh nghiệp chậm đóng BHTN có thể bị phạt đến 75 triệu đồng và vẫn phải truy đóng

    Từ Nghị định số 283/2026/NĐ-CP của Chính phủ, xin nhắc nhở anh chị em kế toán, đặc biệt khối doanh nghiệp FDI, cần lưu ý/kiểm soát chặt chẽ tiến độ trích nộp bảo hiểm thất nghiệp. Nếu lỡ vướng phải, doanh nghiệp sẽ đối mặt với các rủi ro sau:

    • Bị xử phạt vi phạm hành chính lên đến 15% trên tổng số tiền BHTN chậm nộp (tối đa 75 triệu đồng) hoặc phạt lũy tiến theo số lượng người lao động chưa được đăng ký.
    • Buộc nộp lại toàn bộ tiền gốc và tính lãi 0,03%/ngày cho thời gian chậm trễ, điều này không chỉ gây thâm hụt dòng tiền mà còn làm ảnh hưởng trực tiếp đến uy tín và điểm tuân thủ pháp luật của các doanh nghiệp FDI trong mắt tập đoàn mẹ và đối tác.