ไลบรารี Macbook m1 และ python [ปิด]

Dec 02 2020

macbook m1 ใหม่เหมาะกับ Data Science หรือไม่?

ไลบรารี python ของ Data Science เช่น pandas, numpy, sklearn และอื่น ๆ ทำงานบนชิป macbook m1 (Apple Silicon) ได้หรือไม่และเร็วแค่ไหนเมื่อเทียบกับ macbook ที่ใช้ Intel รุ่นก่อนหน้า

คำตอบ

23 jakub Dec 02 2020 at 00:43

ที่เก็บ GitHub นี้มีข้อมูลที่เป็นประโยชน์มากมายเกี่ยวกับชิป Apple M1 และวิทยาศาสตร์ข้อมูลใน Python https://github.com/neurolabusc/AppleSiliconForNeuroimaging. ฉันได้รวมคำพูดที่เป็นตัวแทนไว้ด้านล่าง

TL; ดร

เว้นแต่คุณจะเป็นนักพัฒนาฉันขอไม่แนะนำให้นักวิทยาศาสตร์ซื้อคอมพิวเตอร์ Apple Silicon ในระยะสั้น การทำงานที่มีประสิทธิผลจะต้องมีการย้ายเครื่องมือหลัก ในระยะยาวสถาปัตยกรรมนี้อาจส่งผลกระทบอย่างมากต่อวิทยาศาสตร์ โดยเฉพาะอย่างยิ่งหาก Apple พัฒนาเซิร์ฟเวอร์ที่ใช้ประโยชน์จากประสิทธิภาพการใช้พลังงานที่โดดเด่นของ CPU (แข่งขันกับ AWS Graviton) และใช้ประโยชน์จากภาษา Metal และ GPU สำหรับงานคำนวณ (แข่งขันกับผลิตภัณฑ์ Tesla ของ NVidia และภาษา CUDA)

ข้อ จำกัด ของ Apple Silicon

นักวิทยาศาสตร์ด้านโครงสร้างพื้นฐานยังไม่พร้อมใช้งานสำหรับสถาปัตยกรรมนี้ ข้อ จำกัด ระยะสั้นมีดังนี้

  • นักวิทยาศาสตร์ที่ใช้ภาษา R, Julia และ Python ที่เป็นที่นิยมต้องการคอมไพเลอร์ Fortran แบบโอเพนซอร์ส แม้ว่า Python จะพร้อมใช้งานบน Apple Silicon แต่เครื่องมือเช่น Numpy และ Scipy จำเป็นต้องมีการรวบรวม Fortran วิธีแก้ปัญหาอย่างหนึ่งคือการติดตั้งการแจกจ่าย Python เช่น miniconda และเรียกใช้ตัวติดตั้ง pip เพื่อเพิ่มแพ็คเกจ Intel (สคริปต์ที่รวมอยู่ในที่เก็บนี้ต้องใช้ numpy, pandas และ seaborn) มีความล่าช้าเมื่อหนึ่งนำเข้าไลบรารีเหล่านี้เป็นครั้งแรกในขณะที่มีการแปล ต่อจากนั้นไลบรารี Python ที่แปลแล้วดูเหมือนจะทำงานได้ดี
  • ในขณะที่คอมไพเลอร์ C Clang ของ Apple สร้างโค้ดเนทีฟอย่างรวดเร็ว แต่เครื่องมือทางวิทยาศาสตร์จำนวนมากจะต้องรอจนกว่าคอมไพเลอร์ gcc, golang และ gFortran จะพร้อมใช้งาน
  • เครื่องมือเช่น VirtualBox, VMware Fusion, Boot Camp และ Parallels ยังไม่รองรับ Apple Silicon ผู้ใช้จำนวนมากพึ่งพาเครื่องมือเหล่านี้ในการใช้โปรแกรม Windows และ Linux บนคอมพิวเตอร์ macOS
  • Docker ไม่รองรับ Apple Silicon ภาชนะเหล่านี้ได้รับความนิยมจากเครื่องมือ neuroimaging หลายชนิด
  • ส่วนประกอบ homebrew จำนวนมากไม่รองรับ Apple Silicon ผู้ใช้จะต้องติดตั้งคอมโพเนนต์ที่แปลแล้วหรือสร้างโมดูลที่รองรับจากซอร์ส
  • MATLAB ถูกใช้โดยเครื่องมือทางวิทยาศาสตร์มากมายรวมถึง SPM แม้ว่า Matlab จะทำงานในการแปล แต่ก็ยังไม่สามารถใช้งานได้ (และไฟล์ mex จะต้องคอมไพล์ใหม่)
  • FSL และ AFNI ยังไม่สนับสนุนสถาปัตยกรรมนี้ แม้ว่าโค้ดอาจทำงานในการแปลได้ แต่การสร้างเครื่องมือเนทีฟบางอย่างต้องรอให้คอมไพเลอร์และไลบรารีได้รับการอัปเดต ซึ่งอาจต้องใช้เวลาหลายเดือน
  • M1 เจนเนอเรชั่นปัจจุบันมีคอร์ประสิทธิภาพสูงเพียงสี่คอร์ ท่อส่งภาพระบบประสาทส่วนใหญ่จะรวมงานตามลำดับที่ต้องการเพียงคอร์เดียว (ที่ M1 เก่ง) และงานคู่ขนาน งานคู่ขนานเหล่านี้สามารถใช้ประโยชน์จาก CPU ที่มีคอร์มากขึ้น (ดังแสดงในการทดสอบ pigz และ niimath ด้านล่าง) โปรดทราบว่าการผสมระหว่างรหัสอนุกรมและรหัสขนานนี้ต้องเผชิญกับกฎหมายของ Amdahls โดยมีผลตอบแทนที่ลดลงสำหรับคอร์เพิ่มเติม
  • M1 รุ่นปัจจุบันมี RAM สูงสุด 16 Gb ชุดข้อมูล Neuroimaging มักมีความต้องการหน่วยความจำขนาดใหญ่ (โดยเฉพาะชุดข้อมูลที่ใช้งานได้แบบเร่งความเร็วแบบหลายแบนด์สถานะพักและการแพร่กระจาย)