- DeepEP เป็นไลบรารีสื่อสารประสิทธิภาพสูงที่มุ่งเน้น Expert Parallelism (EP) ในการฝึกและอนุมาน ML สมัยใหม่ โดยมี all-to-all GPU kernel สำหรับ MoE dispatch/combine และรองรับความแม่นยำต่ำ เช่น FP8
- รีลีส V2 รีแฟกเตอร์ EP ครั้งใหญ่ ทำให้ได้ประสิทธิภาพเทียบเท่าหรือดีกว่า V1 ด้วย ทรัพยากร SM ที่น้อยกว่ามาก และเปลี่ยน backend จาก NVSHMEM ไปเป็น NCCL Gin ที่เบากว่า
- ในการทดสอบตามคอนฟิก V3 วัดภายใต้เงื่อนไข 8K tokens per batch, hidden 7168, top 8 experts, FP8 dispatch และ BF16 combine โดย V2 ทำได้สูงสุด 1.3 เท่าของประสิทธิภาพพีก เทียบกับ V1 และลดการใช้ SM ได้สูงสุด 4 เท่า
- kernel ทั้งหมดคอมไพล์ที่ runtime ด้วย โมดูล JIT ขนาดเบา จึงไม่ต้องคอมไพล์ CUDA ตอนติดตั้ง และ V2 รวม API แบบ throughput สูงกับ latency ต่ำไว้ในอินเทอร์เฟซ
ElasticBuffer เดียว
- ต้องใช้ Hopper SM90 GPU, Python 3.8+, CUDA 12.3+, PyTorch 2.10+, NCCL 2.30.4+, NVLink และเครือข่าย RDMA ระหว่าง node โดย Engram, PP และ CP เป็น ฟีเจอร์เชิงทดลอง
ขอบเขตที่ DeepEP มีให้
- DeepEP (DeepEveryParallel) เป็นไลบรารีสื่อสารประสิทธิภาพสูงสำหรับการฝึกและการอนุมานแมชชีนเลิร์นนิงสมัยใหม่
- ฟังก์ชันหลักในปัจจุบันคือ Expert Parallelism (EP) โดยมี all-to-all GPU kernel แบบ throughput สูงและ latency ต่ำสำหรับ MoE dispatch และ combine
- รองรับ การสื่อสารความแม่นยำต่ำ รวมถึง FP8
- ยังมี primitive เชิงทดลองสำหรับ Pipeline Parallelism (PP), Context Parallelism (CP) และ remote memory access (Engram)
- kernel ทั้งหมดคอมไพล์ที่ runtime ด้วยโมดูล JIT (Just-In-Time) ขนาดเบา จึงไม่ต้องคอมไพล์ CUDA ระหว่างขั้นตอนติดตั้ง
- แม้จะออกแบบมาให้เบา แต่ยังตั้งเป้าให้ได้ประสิทธิภาพแตะหรือเกินขีดจำกัด bandwidth ของฮาร์ดแวร์ในหลายคอนฟิก
การเปลี่ยนแปลงหลักในรีลีส V2
- V2 เป็นรีลีสที่รีแฟกเตอร์ Expert Parallelism ใหม่ทั้งหมด
- ออกแบบมาเพื่อให้ได้ประสิทธิภาพสุดขีดด้วยทรัพยากร SM น้อยกว่า V1 หลายเท่า
- รองรับโดเมน scale-up และ scale-out ที่ใหญ่ขึ้น
- backend เปลี่ยนจาก NVSHMEM ไปเป็น NCCL Gin backend ที่เบากว่า
- ฟีเจอร์ใหม่มีดังนี้
- JIT compilation ทั้งหมด
- NCCL Gin backend แบบ header-only และน้ำหนักเบา
- สามารถนำ NCCL communicator เดิมกลับมาใช้ซ้ำได้
- ใน EPv2 รวม API แบบ throughput สูงและ latency ต่ำไว้ในอินเทอร์เฟซ
ElasticBuffer เดียว
- มี GEMM layout ใหม่
- รองรับโดเมน scale-up และ scale-out ที่ใหญ่ขึ้นได้ถึง EP2048
- คำนวณจำนวน SM และ QP เชิงวิเคราะห์ ทำให้ไม่จำเป็นต้อง auto-tuning อีกต่อไป
- ยังคงรองรับทั้ง hybrid mode และ direct mode
- ในการฝึก legacy ลักษณะคล้าย V3 ลดการใช้ SM จาก 24 ตัวเหลือ 4–6 ตัว โดยยังรักษาประสิทธิภาพเทียบเท่าหรือดีกว่าเดิม
- 0 SM Engram ที่ใช้ RDMA
- 0 SM PP ที่ใช้ RDMA
- 0 SM CP ที่ใช้ Copy Engine
ข้อจำกัดและฟีเจอร์ที่กำลังพัฒนา
- V2 มี การใช้ขนาด buffer มากกว่า V1
- ไม่รองรับ 0 SM RDMA low-latency EP อีกต่อไป
- Engram, PP, CP เป็นฟีเจอร์เชิงทดลอง
- ฟีเจอร์ที่กำลังพัฒนามีดังนี้
- Elastic GPU & CPU buffers ซึ่งเป็นพื้นที่ virtual address ต่อเนื่องที่ผสมการ map หน่วยความจำกายภาพของ GPU และ CPU
- มุ่งไปในทิศทางที่ทำให้ Engram หรือ EP ที่ไม่สมดุลทำงานได้แบบอัตโนมัติเต็มรูปแบบและโปร่งใส
- งานที่ใช้ EP replay เพื่อจัดการ load imbalance และลดขนาด intermediate buffer
- การอัปเดต all-gather และการทำ reduce-scatter สำหรับ DP และ TP
- เอกสาร V1 ที่ใช้ NVSHMEM มีให้ที่ docs/legacy.md
ผลการวัดประสิทธิภาพ
- ทดสอบตามคอนฟิก V3 ภายใต้เงื่อนไขต่อไปนี้
- 8K tokens ต่อ batch
- hidden dimension 7168
- top 8 experts
- FP8 dispatch
- BF16 combine
- ผลลัพธ์หลักมีดังนี้
- SM90, CX7, EP 8 x 2: dispatch 90 GB/s RDMA, combine 81 GB/s RDMA, 12 SM
- SM90, CX7, EP 8 x 4: dispatch 61 GB/s RDMA, combine 61 GB/s RDMA, 6 SM
- SM100, CX7, EP 8 x 2: dispatch 90 GB/s RDMA, combine 91 GB/s RDMA, 12 SM
- SM100, EP 8: dispatch 726 GB/s NVLink, combine 740 GB/s NVLink, 64 SM
- SM100, EP 8: dispatch 643 GB/s NVLink, combine 675 GB/s NVLink, 24 SM
- ค่าที่วัดเป็น logical bandwidth เช่น 90 GB/s ของ
EP 8 x 2 รวม local rank traffic ไว้ด้วย
- V2 ทำได้สูงสุด 1.3 เท่าของประสิทธิภาพพีก เมื่อเทียบกับ V1 และลดจำนวน SM ได้สูงสุด 4 เท่า
- ขณะนี้ละผลลัพธ์ของคอนฟิก EP ที่ใหญ่กว่าไว้ และแนะนำให้ผู้ใช้ทำ benchmark เอง
- จากประสบการณ์ภายใน คาดว่า kernel จะยัง saturate bandwidth ของฮาร์ดแวร์ต่อไปแม้สเกลจะใหญ่ขึ้น
- ข้อมูลประสิทธิภาพของ V1 อยู่ที่ docs/legacy.md
การติดตั้งและข้อกำหนด
- ข้อกำหนดมีดังนี้
- Hopper SM90 GPU หรือสถาปัตยกรรมที่รองรับ SM90 PTX ISA
- Python 3.8 ขึ้นไป
- CUDA 12.3 ขึ้นไปสำหรับ SM90 GPU
- PyTorch 2.10 ขึ้นไป
- NCCL 2.30.4 ขึ้นไป
- NVLink สำหรับการสื่อสารภายใน node
- เครือข่าย RDMA สำหรับการสื่อสารระหว่าง node
- แนะนำให้ติดตั้ง NCCL ผ่าน pip เพื่อให้ DeepEP ตรวจพบได้อัตโนมัติในสภาพแวดล้อม Python
pip install "nvidia-nccl-cu13>=2.30.4" --no-deps
- เพื่อรองรับเมธอด legacy ยังพึ่งพา NVSHMEM ด้วย และดูคำแนะนำการติดตั้งได้ที่ NVSHMEM Installation Guide
- ตัวอย่างการ build และรัน test ระหว่างพัฒนามีดังนี้
python setup.py build
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so
python tests/elastic/test_ep.py
python tests/elastic/test_agrs.py
python tests/elastic/test_engram.py
python tests/elastic/test_pp.py
- ติดตั้งด้วยคำสั่งต่อไปนี้
python setup.py install
- หลังติดตั้งแล้ว สามารถ import
deep_ep ในโปรเจกต์ Python เพื่อใช้งานได้
อินเทอร์เฟซที่มี ElasticBuffer เป็นศูนย์กลาง
- ใน V2 การทำงาน EP ทั้งหมดถูกรวมไว้ภายใต้อินเทอร์เฟซ
ElasticBuffer เดียว
- จัดการ API ทั้งแบบ throughput สูงและ latency ต่ำด้วยอินเทอร์เฟซเดียวกัน
- สามารถ initialize buffer โดยระบุการตั้งค่า MoE ได้โดยตรง
- คำนวณจำนวน SM และ QP ที่เหมาะสมเชิงวิเคราะห์
- ตัวอย่างการ initialize buffer คือใช้
ElasticBuffer.get_buffer_size_hint() เพื่อคำนวณขนาดที่ต้องใช้ และตรวจสอบว่าสามารถ reuse buffer เดิมได้หรือไม่
- เมื่อสร้าง buffer ใหม่ ให้ระบุ
num_max_tokens_per_rank, hidden, num_topk, use_fp8_dispatch เป็นต้น
- ใช้
_buffer.get_theoretical_num_sms(num_experts, num_topk) เพื่อรับจำนวน SM เชิงทฤษฎีที่จะใช้กับ communication kernel
- หากระบุ
num_sms โดยตรงในการเรียก dispatch และ combine จะ override ค่าที่คำนวณไว้
รูปแบบการใช้งานสำหรับการฝึก, prefill และ decoding
- ในการฝึกหรือ inference prefill นั้น MoE dispatch จะ route token ไปยัง expert ที่เกี่ยวข้องในทุก rank
- รองรับอินพุต BF16 และ FP8
handle เก็บ routing metadata ที่จำเป็นสำหรับการเรียก combine ภายหลัง
handle.num_recv_tokens_per_expert_list ให้จำนวน token ต่อ expert ที่จำเป็นสำหรับ GEMM
- backward pass ของ MoE dispatch ถูกประมวลผลด้วย
combine ในทางปฏิบัติ
- MoE combine จะ reduce output ของ expert กลับไปยัง rank เดิม
- backward pass ของ MoE combine ถูกประมวลผลด้วย
dispatch ในทางปฏิบัติ
- การซ้อนทับกันของ communication และ computation จัดการผ่านอินเทอร์เฟซ
EventOverlap
- สามารถทำ computation อิสระระหว่างที่ communication กำลังดำเนินอยู่ได้
- ก่อนใช้ผลลัพธ์ ให้ synchronize compute stream ด้วย
event.current_stream_wait()
- ใน inference decoding ก็ใช้
ElasticBuffer เดียวกัน
- เมื่อ gating decision ไม่เปลี่ยน สามารถ reuse routing metadata ด้วย
cached_handle
- รูปแบบนี้หลีกเลี่ยงการคำนวณ layout ใหม่และการ synchronize กับ CPU
Environment variables และค่าคงที่ตอน build
- การตั้งค่าทั่วไป
EP_BUFFER_DEBUG: แสดงข้อมูลดีบักของ buffer initialization, การประมาณ SM และ backend
EP_SUPPRESS_NCCL_CHECK: ระงับการตรวจสอบ NCCL version mismatch
EP_AVOID_RECORD_STREAM: หลีกเลี่ยง record_stream ของ output tensor
EP_NUM_TOPK_IDX_BITS: override จำนวนบิตสำหรับ encoding top-k index
- การตั้งค่า networking
EP_NIC_NAME: ชื่อ NIC เริ่มต้นที่จะใช้ query คุณสมบัติ NIC ค่าเริ่มต้นคือ mlx5_0
EP_OVERRIDE_RDMA_SL: override RDMA service level index
EP_DISABLE_GIN: ปิดใช้งาน NCCL Gin backend
- การตั้งค่า JIT
EP_JIT_CACHE_DIR: ไดเรกทอรี cache ของ kernel ที่คอมไพล์แล้ว ค่าเริ่มต้นคือ $HOME/.deep_ep
EP_JIT_NVCC_COMPILER: path ของ NVCC compiler
EP_JIT_CPP_STANDARD: เวอร์ชัน C++ standard ค่าเริ่มต้นคือ 20
EP_JIT_DUMP_PTX, EP_JIT_DUMP_SASS, EP_JIT_DUMP_ASM: การตั้งค่าที่เกี่ยวกับการ dump output PTX/SASS
- environment variable บางตัวทำงานแบบ persistent
- ถูก capture ตอน build และรวมเป็นค่าเริ่มต้นของแพ็กเกจที่ติดตั้ง
- หากไม่ override ด้วย environment variable ปัจจุบันตอน import ค่าเริ่มต้นนี้จะถูกใช้โดยอัตโนมัติ
- ตัวแปรเป้าหมายคือ
EP_JIT_CACHE_DIR, EP_JIT_PRINT_COMPILER_COMMAND, EP_NUM_TOPK_IDX_BITS, EP_NCCL_ROOT_DIR
- รายละเอียดเพิ่มเติมดูได้ที่ test_ep.py หรือเอกสาร Python
คำแนะนำการตั้งค่าเครือข่าย
- DeepEP ผ่านการทดสอบครบถ้วนบนเครือข่าย InfiniBand
- ตามทฤษฎีแล้วเข้ากันได้กับ RDMA over Converged Ethernet หรือ RoCE ด้วย
- การแยก traffic
- รองรับผ่าน Virtual Lanes ของ InfiniBand
- แนะนำให้แยก expert-parallel workload และ workload อื่นไปอยู่คนละ virtual lane
- ใน V2 สามารถควบคุมการจัดสรร virtual lane ได้ด้วยอาร์กิวเมนต์
sl_idx หรือ environment variable EP_OVERRIDE_RDMA_SL
- Adaptive routing
- เป็นฟีเจอร์ routing ขั้นสูงที่ทำให้สวิตช์ InfiniBand กระจาย traffic ไปหลายเส้นทางอย่างสม่ำเสมอ
- แนะนำให้เปิดใช้งานในทุกสภาวะโหลดของเครือข่าย แม้อาจมี latency เพิ่มขึ้น
- Congestion control
- ปิดใช้งานเพราะส่งผลเสียต่อ bandwidth สูงสุด
- หากหลีกเลี่ยง congestion ไม่ได้ แนะนำให้จัด workload นั้นไว้ใน virtual lane ที่มี priority ต่ำ
- PCI atomic mode
- หากฮาร์ดแวร์รองรับ แนะนำให้ตั้งค่า
PCI_ATOMIC_MODE ของ NIC เพื่อปรับปรุงประสิทธิภาพ RDMA atomic operation
sudo mlxconfig -y -d mlx5_$i set PCI_ATOMIC_MODE=4
Experimental branch และ community fork
- Experimental branch
- Zero-copy: ลบการ copy ระหว่าง PyTorch tensor กับ communication buffer เพื่อลดการใช้ SM ของ kernel ทั่วไปอย่างมาก
- Eager: ใช้ low-latency protocol เพื่อลบ extra RTT latency ที่ RDMA atomic OP เพิ่มเข้ามา
- Hybrid-EP: implementation backend ใหม่ที่ใช้ TMA instructions, การใช้ SM ต่ำสุด, รองรับโดเมน NVLink ที่ใหญ่ขึ้น, การซ้อนทับ communication/computation แบบละเอียดระดับ single-batch, PCIe kernel และรองรับ NVFP4
- AntGroup-Opt: ชุด optimization ที่เขียนโดย AntGroup Network Platform Department
- Mori-EP: รองรับโหมด latency ต่ำบน ROCm/AMD GPU โดยอิง backend MORI
- nvDev: branch ที่อิง V2 ซึ่งรวมฟีเจอร์ CUDA ล่าสุด เช่น Compute Fabric Transport
- Community fork
- uccl/uccl-ep: รองรับการรัน DeepEP บน GPU ต่างค่าย เช่น Nvidia และ AMD รวมถึง NIC เช่น EFA, Broadcom และ CX7
- Infrawaves/DeepEP_ibrc_dual-ports_multiQP: เพิ่มโซลูชัน multi-QP และการรองรับ dual-port NIC ให้กับ IBRC transport
- antgroup/DeepXTrace: diagnostic analyzer สำหรับค้นหา slow rank ได้อย่างมีประสิทธิภาพและแม่นยำ
- ROCm/mori: ไลบรารีสื่อสารรุ่นถัดไปของ AMD สำหรับ AI workload ที่ไวต่อประสิทธิภาพ เช่น Wide EP, KVCache transfer และ Collectives
License และการอ้างอิง
- DeepEP V2 สร้างขึ้นบน NCCL Gin backend
- โค้ดใน repository เผยแพร่ภายใต้ MIT License
- รายการอ้างอิงคือ
DeepEP: an efficient expert-parallel communication library และระบุปีเป็น 2025
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ทำประสิทธิภาพได้สุดขีดด้วยการค้นหาและใช้ คำสั่ง PTX ที่ไม่ได้ระบุไว้ในเอกสาร
ld.global.nc.L1::no_allocate.L2::256Bคำสั่งนี้เข้าถึงหน่วยความจำ GPU แบบ volatile ด้วยตัวปรับแต่ง PTX แบบอ่านอย่างเดียวที่ไม่สอดคล้องกัน
.ncจึงอาจทำให้เกิดพฤติกรรมที่ไม่ได้นิยามไว้อย่างไรก็ตาม มีการทดสอบแล้วว่าบนสถาปัตยกรรม Hopper เมื่อใช้ร่วมกับ
.L1::no_allocateจะรับประกันความถูกต้อง และว่ากันว่าประสิทธิภาพดีขึ้นมากรู้สึกเหมือนเด็กได้เข้าไปในร้านขายลูกกวาด
มีทริกมากมายที่ถ้าจะ reverse engineer ให้ถูกต้องจากการดูแค่เปเปอร์คงใช้เวลานานเกินไป และหวังว่าการเปิดเผยในสัปดาห์นี้จะเปิดยุคเรอเนซองส์ที่ใช้ MoE เป็นโมเดลวิชาการพื้นฐาน
ฝ่ายแรกตั้งแต่ GPT-4 เป็นต้นมาก็เป็น MoE กันหมดแล้ว แต่โมเดลเปิดเผยต่อสาธารณะมักเป็นโมเดล dense เสมอ ยกเว้น DeepSeek V3 กับ Mixtral
ทีมนี้ทำให้ไม่รักไม่ได้จริง ๆ
กำลังผลัก ขอบเขตของโอเพนซอร์ส เพื่อทุกคน
ถ้าอยากดูโมเดลโอเพนซอร์สจริง ๆ ให้ดู OLMo 2 ของ AI2: https://allenai.org/blog/olmo2
พวกเขาแชร์ทุกอย่างที่จำเป็นต่อการสร้างโมเดลซ้ำ รวมถึงตัวข้อมูลเองด้วยจริง ๆ
ในลิงก์ข้างต้นก็กล่าวว่า “เพราะวิทยาศาสตร์แบบเปิดอย่างสมบูรณ์ต้องการมากกว่าแค่น้ำหนักที่เผยแพร่ต่อสาธารณะ เราจึงยินดีที่จะแชร์การอัปเดต OLMo ใหม่กับชุมชนโมเดลภาษาที่กว้างขึ้น ซึ่งรวมถึงน้ำหนัก ข้อมูล โค้ด สูตรการฝึก checkpoint ระหว่างทาง และโมเดลที่ปรับแต่งด้วยคำสั่ง”
Zuckerberg ควรเลิกอ้างว่า Meta เปิดเผย AI เป็นโอเพนซอร์สได้แล้ว
ถึงขั้นทำโฆษณาทีวี แต่จริง ๆ แล้ว เปิดแค่น้ำหนัก และไม่มีโค้ด
AI โอเพนซอร์สจริง ๆ มีแค่ DeepSeek เท่านั้น
เพราะไม่ได้เปิดเผยข้อมูล
การจะเป็นโอเพนซอร์สต้องใช้ ไลเซนส์โอเพนซอร์สจริง ๆ อย่างที่ OSI ระบุไว้ และต้องแชร์โค้ดก่อนและหลังการฝึก โค้ดที่เกี่ยวกับการปรับจูน โค้ดประเมินผล ทุกอย่างที่เกี่ยวกับความปลอดภัยและการเซ็นเซอร์ และอาจรวมถึงข้อมูลฝึกทั้งหมดด้วย
ไม่เช่นนั้นก็ไม่สามารถสร้างน้ำหนักซ้ำได้ และการแชร์น้ำหนักก็คล้ายกับการแชร์โปรแกรมที่คอมไพล์แล้ว
เท่าที่รู้ โมเดลที่แข่งขันได้และเป็นโอเพนซอร์สจริง ๆ มีเพียง OLMo 2 ของ AI2: https://allenai.org/blog/olmo2
ล่าสุดยังเปิดเผยแอปที่ทำ inference บนอุปกรณ์ด้วย ซึ่งก็เป็นโอเพนซอร์สเช่นกัน: https://allenai.org/blog/olmoe-app
ยังมีอีกโมเดลชื่อ Tülu 3 และว่ากันว่าประสิทธิภาพดีกว่า DeepSeek V3: https://allenai.org/blog/tulu-3-405B
แทบทุกอย่างที่จำเป็นในการฝึก LLM รวมถึงเทคโนโลยีล่าสุด อยู่ในนั้นแล้ว
ยังต้องการอะไรอีก? ส่วนโค้ดที่เฉพาะเจาะจงกับโครงสร้างพื้นฐานของ Meta หรือ?
เท่ากับย้อนกลับไปเป็นโมเดล FREEWARE / SHAREWARE
ควรใช้ถ้อยคำแบบนี้กับน้ำหนักที่ “เปิดเผยต่อสาธารณะ”
มี การสื่อสาร all-to-all ที่มีประสิทธิภาพและปรับแต่งมาอย่างดี รองรับทั้งภายในโหนดและระหว่างโหนดผ่าน NVLink และ RDMA, kernel throughput สูงสำหรับการฝึกและ inference prefill, kernel latency ต่ำสำหรับ inference decoding, รองรับการ dispatch แบบ FP8 ดั้งเดิม และการควบคุมทรัพยากร GPU ที่ยืดหยุ่นเพื่อทับซ้อนการคำนวณกับการสื่อสาร
X: https://x.com/deepseek_ai/status/1894211757604049133
แรงจูงใจของงาน DeepSeek อาจผิดก็ได้
เช่น อาจเป็น ความพยายามที่รัฐสนับสนุน เพื่อลดข้อได้เปรียบการครองนำด้าน AI ของสหรัฐฯ ให้เหลือศูนย์ แต่ผลสุทธิต่อทุกคนทั่วโลกนั้นยอดเยี่ยมล้วน ๆ
ในกรณีเลวร้ายที่สุด ต่อให้ทำด้วยเหตุผลที่ผิด ก็ต้องขอบคุณ DeepSeek เพราะพวกเขากำลังทำสิ่งที่ OpenAI โกหกคนทั้งโลกมาหลายปีว่าจะทำ
การเปิดสิ่งนี้เป็นโอเพนซอร์ส “ผิด” มากกว่าการ ห้ามส่งออก Nvidia GPU ระดับสูง หรือ?
การเปิดโอเพนซอร์สของ DeepSeek น่าจะเป็นเพียงสิ่งที่เกิดขึ้นภายใต้ความยินยอมของพรรคคอมมิวนิสต์จีน และเป็นผลดีพร้อมกันทั้งต่อพรรคคอมมิวนิสต์จีนกับชุมชน AI โอเพนซอร์สที่กว้างขึ้น ไม่ควรถูกมองว่าเป็นจุดยืนเชิงหลักการใด ๆ
การหาวิธีทำลายข้อได้เปรียบในการแข่งขันของประเทศอื่นเป็นกิจกรรมหลักของรัฐบาลทุกแห่ง ไม่ว่าใหญ่หรือเล็ก
เป็นรอบที่ 2 ของการเปิดโอเพนซอร์สโดย บริษัท Open AI™ ตัวจริง ภายใต้ไลเซนส์ MIT
อีกครั้งที่ DeepSeek เปิดกว้างกว่าบริษัทมูลค่า 157,000 ล้านดอลลาร์ที่อ้างว่าตัวเอง “Open”
แทบไม่มีใครพูดถึง Llama ของ Meta แต่ทุกคนควรคาดว่า Llama 4 จะมาพร้อมความสามารถด้าน reasoning
เป้าหมายคือไม่ถูกบีบตายกลางการแข่งขันที่มุ่งสู่ศูนย์
ระหว่างที่สหรัฐฯ คุ้ย ใบเสร็จ GPU ในสิงคโปร์เพื่อดูว่า DeepSeek ใช้แค่ H800 จริงไหม นั่นหมายความว่าส่วนที่เหลือของโลกสามารถนำ optimization เหล่านี้ไปรันบน H100 แบบเต็ม ๆ ได้ใช่ไหม?
ทั้งที่เพราะมาตรการคว่ำบาตรของสหรัฐฯ ทำให้หา H100 หรือเข้าถึงได้ยาก และเพราะความโอหังของสหรัฐฯ ก็ยังแสร้งทำต่อไปว่าคำสั่งของตนครอบคลุมทั้งโลก?
เข้าใจแบบนี้ถูกไหม?
PTX ที่ทุกคนรอคอยรวมอยู่ในครั้งนี้ไหม?
csrc/kernelsค้นหา
asmก็จะเจอจุดที่ใช้ทำให้นึกถึง ยุค 80–90 ที่ผู้คนแฮ็ก assembly หรือค้นหาคำสั่งที่ไม่ได้ระบุไว้ในเอกสารเพื่อรีดประสิทธิภาพจาก CPU
สักวัน compiler อาจปรับแต่งได้ดีพอ หรือ GPU อาจทรงพลังเกินไป จนทริกแบบนี้ไม่สร้างความแตกต่างมากอีกต่อไปเหมือน CPU ทุกวันนี้