ปัจจุบันไม่มีวิธีโดยตรงในการปิดใช้งานการจัดตำแหน่งหน่วยความจำ GPU ใน JAX โดยไม่ต้องใช้ตัวแปรสภาพแวดล้อม วิธีที่แนะนำเกี่ยวข้องกับการตั้งค่าตัวแปรสภาพแวดล้อม `xla_python_client_preallocate` เป็น` 'false'` ก่อนที่จะนำเข้า Jax สิ่งนี้สามารถทำได้ทั้งในสคริปต์ Python ของคุณโดยใช้ `os.environ ['xla_python_client_preallocate'] = 'false'` หรือโดยการตั้งค่าภายนอกก่อนที่จะเรียกใช้สคริปต์ของคุณด้วย` ส่งออก xla_python_client_preallocate = false` xla_python_client_preallocate = false` (บน windows)
อย่างไรก็ตามมันเป็นสิ่งสำคัญในการตั้งค่าตัวแปรสภาพแวดล้อมเหล่านี้ก่อนที่จะนำเข้า JAX เนื่องจากการตั้งค่าหลังจากนั้นจะไม่มีผล [1] [3] ไม่มีฟังก์ชั่น JAX ในตัวหรือการกำหนดค่าที่ช่วยให้คุณปิดการใช้งาน preallocation โดยไม่ต้องใช้ตัวแปรสภาพแวดล้อม
หากคุณพบปัญหาเกี่ยวกับการปิดใช้งาน preallocation ใน Jax รุ่นใหม่อาจเป็นเพราะข้อผิดพลาดและตรวจสอบเอกสารล่าสุดหรือบันทึกย่อสำหรับการอัปเดตสำหรับการอัปเดต [9]
การอ้างอิง:[1] https://github.com/jax-ml/jax/discussions/21962
[2] https://learn.microsoft.com/en-us/windows/win32/msi/environment-table
[3] https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html
[4] https://docs.jax.dev/en/latest/jep/4410-omnistaging.html
[5] https://kolonist26-jax-kr.readthedocs.io/en/latest/gpu_memory_allocation.html
[6] https://developer.jboss.org/thread/215838
[7] https://crikit.science/documentation/ad_systems/
[8] https://docs.nvidia.com/deeplearning/dali/user-guide/docs/advanced_topics_performance_tuning.html
[9] https://github.com/jax-ml/jax/discussions/19014