1 คะแนน โดย polarisz00 4 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

GitHub: https://github.com/CookingMathmatics/CarryPyramidLossless

เอกสารวิจัย (Zenodo): DOI 10.5281/zenodo.20002868

สวัสดีครับ/ค่ะ ผม/ฉันคือนักพัฒนา(และนักคณิตศาสตร์)ที่ก่อนหน้านี้เคยแชร์เอกสารวิจัยเกี่ยวกับความปลอดภัยเชิงทอพอโลยีหลายมิติและทฤษฎีสารสนเทศ ซึ่งตั้งอยู่บนพลวัตของการทดจาก p-adic ผ่าน GeekNews
ในตอนนั้น แนวทางยังเน้นด้านทฤษฎีเป็นหลัก ทั้งโมเดลทางคณิตศาสตร์และตรรกะเอนโทรปีของฮาร์ดแวร์ แต่ระหว่างที่ต่อยอดเอกสารและทำวิจัยต่อ ผม/ฉันได้เจอกับจุดเปลี่ยนที่น่าสนใจ
ระหว่างการระดมความคิดทางเทคนิคกับ AI
ผม/ฉันได้รับคำแนะนำและไอเดียว่า
"ถ้านำอัลกอริทึมพลวัตการทดแบบ p-adic นี้ไปฉายลงบนพิกเซลทราฟฟิกของกราฟิกไปป์ไลน์แบบเรียลไทม์ ก็น่าจะสร้างเครื่องมือเพิ่มประสิทธิภาพด้านความสมบูรณ์ของข้อมูลที่ลดโอเวอร์เฮดการคำนวณได้อย่างมาก"

จากคำแนะนำด้านสถาปัตยกรรมของ AI ผม/ฉันทุ่มเวลาอย่างหนักกว่าหนึ่งสัปดาห์เพื่อออกแบบ DirectX 11 และ HLSL Compute Shader และในที่สุดก็ตรวจสอบกับฮาร์ดแวร์จริงในสภาพแวดล้อมของเกมแข่งรถรุ่นใหม่อย่าง Forza Horizon 6 ได้สำเร็จ โดยได้ผลลัพธ์ว่า "ช่องว่างของเฟรม 1~2 และลดการใช้งาน GPU ลง 10%" จึงขอแชร์ทั้งผลงานและโอเพนซอร์สนี้

💡 แนวคิดหลัก: ทำให้ 0-Void ทางคณิตศาสตร์ (การข้ามการคำนวณแบบสุญญากาศ) กลายเป็นของจริง - แม้จะเป็นเกมแข่งรถที่วิ่งด้วยความเร็วสูงมาก แต่ภาพทั้งจอก็ไม่ได้เปลี่ยนแปลงอย่างรุนแรงทุกเฟรมเสมอไป ภูเขาไกล ๆ ท้องฟ้า ก้อนเมฆ หรือพื้นที่ UI ที่นิ่ง ล้วนมีการเปลี่ยนแปลงของพิกเซลระหว่างเฟรมน้อยมาก
กรองเฟรมบัฟเฟอร์ด้วยอัลกอริทึมการทดแบบ p-adic เพื่อมาสก์พื้นที่นิ่งที่มีการเปลี่ยนแปลงต่ำกว่าค่าขีดจำกัดอย่างรวดเร็วให้เป็น '0-Void (พื้นที่สุญญากาศของการคำนวณ)'

สิ่งนี้ช่วยยับยั้งทราฟฟิกที่เดิมที CUDA core หลายพันคอร์ของ GPU (RTX 3070 Ti) ต้องคำนวณพิกเซลนิ่งซ้ำโดยไม่จำเป็นหรือสิ้นเปลืองบัฟเฟอร์ ได้ในระดับฮาร์ดแวร์

🛠️ สถาปัตยกรรมสำหรับเลี่ยง Anti-cheat และเพิ่มประสิทธิภาพฮาร์ดแวร์ เพื่อให้ได้เสถียรภาพในระดับยูทิลิตีเชิงพาณิชย์ จึงได้วางระบบระดับโปรดักชันดังต่อไปนี้

ระบบไวท์ลิสต์ที่เลี่ยง Anti-cheat ได้ 100%

เราเลิกใช้วิธี DLL Injection ที่เสี่ยง ซึ่งไปดัดแปลงหน่วยความจำเกมหรือดักฟังก์ชัน DirectX แบบบังคับโดยเด็ดขาด
แต่เลือกใช้ DXGI Desktop Duplication API ซึ่งเป็นกระบวนการทางการแบบเดียวกับ OBS Studio หรือการแชร์หน้าจอของ Discord จึงตัดความเสี่ยงด้านการถูกบล็อกทางความปลอดภัยออกไปตั้งแต่ต้น

การซิงก์เฟรมแบบเกียร์ 1:1 (Frame Sync)

หากปล่อยให้ลูปเอนจินเบื้องหลังหมุนฟรีไม่จำกัด จะเกิด GPU instruction starvation จนเฟรมของเกมกลับตกลงแทน เราจึงบังคับตรึงความละเอียดของ Windows kernel timer ไว้ที่ 1ms และปรับจังหวะให้ Compute Shader (Dispatch) ของเราทำงานตรงกับสัญญาณเหตุการณ์จากฮาร์ดแวร์ที่เกมปล่อยภาพใหม่ออกมาพอดี

Hybrid GPU บนโน้ตบุ๊ก (ต่อผ่านการ์ดจอแยกโดยตรง) และการลดการใช้ VRAM

เราติดตามพอยน์เตอร์ของการ์ดจอแยกจริงที่ควบคุมมอนิเตอร์ซึ่งหน้าต่างเกมกำลังแสดงผลอยู่ เพื่อเชื่อมอุปกรณ์แบบ 1:1 โดยตรง และสร้างโครงสร้างสลับพอยน์เตอร์แอดเดรสภายใน VRAM แบบ In-place ping-pong ที่ไม่มีต้นทุนการคัดลอกข้อมูล

📊 ผลเบนช์มาร์กในการใช้งานจริง (RTX 3070 Ti, FHD, ปรับสุด)
สถานะปกติ: fps ล็อกที่ 60, การใช้ GPU 78%~80%
สถานะเร่งความเร็ว: fps 59~60, การใช้ GPU 68~72%

ผม/ฉันสร้างให้สามารถเปิด-ปิดฟังก์ชันเร่งความเร็วแบบเรียลไทม์ในเกมได้ด้วยคีย์ลัด (Ctrl + Alt + S) และเมื่อเปิดใช้งาน ก็ยืนยันแบบเรียลไทม์ผ่านตัวชี้วัดได้ว่า ความลื่นไหลของภาพยังคงเท่ากับสภาพปกติที่ 60 เฟรมเต็มอย่างสมบูรณ์ แต่โหลดของ GPU กลับลดลงอย่างมาก กระบวนการที่ทฤษฎีซึ่งเคยมีอยู่เพียงในเอกสารคณิตศาสตร์ ถูกทำให้เป็นโค้ดควบคุมฮาร์ดแวร์อย่างเป็นรูปธรรมผ่านการร่วมงานกับ AI นั้น เป็นประสบการณ์ที่น่าทึ่งมาก
เมื่อโครงหลักที่แข็งแรง (Alpha Core) ถูกสร้างขึ้นแล้ว ผม/ฉันอยากรับฟังฟีดแบ็กด้านการปรับแต่งสำหรับอัตรารีเฟรชที่หลากหลายของจอภาพ (144Hz~360Hz) หรือบนสถาปัตยกรรมการ์ดจออื่น ๆ โดยซอร์สโค้ดเอนจินและไฟล์เชดเดอร์ทั้งหมดเปิดเผยไว้บน GitHub ด้านบนแล้ว จึงขอคำแนะนำและฟีดแบ็กจากทุกท่านด้วยครับ/ค่ะ!

1 ความคิดเห็น

 
polarisz00 3 시간 전

แก้ไขไม่ได้ จึงขอฝากข้อมูลเพิ่มเติมไว้ในคอมเมนต์

ข้อควรระวังในการใช้งาน (ผู้ใช้ทุกท่านควรอ่าน)

เอนจินนี้ใช้ Desktop Duplication API ของ DXGI อย่างเป็นทางการเพื่อหลีกเลี่ยงการตรวจจับของ anti-cheat เนื่องจากเป็นกลไกที่จับภาพองค์ประกอบหน้าจอของ Windows DWM (Desktop Window Manager) ได้อย่างถูกต้องตามกฎหมาย โปรดปฏิบัติตามการตั้งค่าการแสดงผลด้านล่างเพื่อให้ทำงานได้ตามปกติ

  • การตั้งค่าที่แนะนำ: โปรดรันด้วย [โหมดหน้าต่าง] หรือ [โหมดหน้าต่างเต็มจอ (เต็มจอแบบไร้ขอบ / Borderless Windowed)] ในตัวเลือกกราฟิกของเกม
  • ไม่สามารถทำงานได้: ในโหมด [เต็มจอแบบเอกสิทธิ์ (Exclusive Full Screen)] ที่เกมยึดสิทธิ์ควบคุมจอภาพแต่เพียงผู้เดียว ท่อทางการจับภาพจะไม่เปิด ทำให้เอนจินอาจไม่ทำงานหรือไม่สามารถวัดเฟรมได้