น่าหงุดหงิดเสมอที่ต้องเสียเวลาไปกับการใช้บทช่วยสอนออนไลน์ต่างๆ เกี่ยวกับวิธีการติดตั้งไดรเวอร์ Nvidia, CUDA, cuDNN หรือวิธีการรวบรวมแหล่งที่มาของ TensorFlow ด้วยการรองรับ GPU ที่นำไปสู่การทำงานผิดพลาดหรือข้อผิดพลาดในการคอมไพล์ ตัวฉันเอง ฉันเสียเวลาหลายวันในการพยายามติดตั้งเครื่องมือและไลบรารีเหล่านี้อย่างถูกต้อง แม้ว่าบทช่วยสอนอย่างเป็นทางการจะไม่ทำงานก็ตาม

ที่นี่ ฉันต้องการแบ่งปันกับชุมชนการเรียนรู้ของเครื่องและการประมวลผล GPU ว่าอะไรที่เหมาะกับการกำหนดค่าของฉัน ฉันเชื่อว่าบทช่วยสอนนี้อาจครอบคลุมการกำหนดค่าต่างๆ ระบบปฏิบัติการ Linux และเวอร์ชัน CUDA

เป้าหมายสูงสุดของบทช่วยสอนนี้คือการรวบรวม TensorFlow ตามแหล่งที่มาที่รองรับ GPU เราต้องการเริ่มต้นจากศูนย์ จากนั้นเราจะต้องทำตามขั้นตอนต่อไปนี้:

1. วิธีล้างข้อมูลคอมพิวเตอร์ของคุณจากการติดตั้งครั้งก่อน
2. วิธีติดตั้งไดรเวอร์ Nvidia
3. วิธีติดตั้ง CUDA Toolkit แยกจากการติดตั้งไดรเวอร์
4. วิธีการ ติดตั้งไฟล์ cuDNN บนคอมพิวเตอร์ของคุณ
5. วิธีคอมไพล์ TensorFlow 2.1 จากแหล่งที่มาที่รองรับ GPU (พร้อมการดีบักบางอย่าง)
6. วิธีสรุปบทช่วยสอนนี้ให้เป็นเวอร์ชันอื่น

การกำหนดค่าของฉันคืออะไร? ระบบปฏิบัติการของฉันคือ Ubuntu 20.04 LTS (หรือที่รู้จักในชื่อ Focal Fossa) และการ์ดกราฟิกของฉันคือ Quadro RTX 5000 Mobile

1. วิธีล้างข้อมูลคอมพิวเตอร์ของคุณจากการติดตั้งครั้งก่อน

ก่อนอื่น เราต้องทำความสะอาดระบบของเราจากไดรเวอร์กราฟิกก่อนหน้าและการติดตั้ง CUDA บน Ubuntu 20.04 สามารถทำได้ง่ายๆ ด้วยคำสั่งต่อไปนี้ที่ฉันพบใน บทความนี้ สมมติฐานที่นี่คือคุณติดตั้ง CUDA Toolkit โดยใช้ที่เก็บ Ubuntu หรือไฟล์ .deb ที่มีอยู่บนเว็บไซต์ Nvidia

# Remove already installed Nvidia/CUDA packages
sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
sudo apt remove --autoremove nvidia-*
# Remove remaining Nvidia files and dependencies
sudo apt purge nvidia*
sudo apt autoremove
sudo apt autoclean
# Remove remaining CUDA files
sudo rm -rf /usr/local/cuda

หากคุณติดตั้งไดรเวอร์ Nvidia และ/หรือ CUDA Toolkit ด้วยไฟล์รัน (.sh) คุณจะต้องใช้

# cuda-uninstaller
/usr/local/cuda/bin/cuda-uninstaller

เพื่อลบทุกอย่างที่เกี่ยวข้องกับ CUDA ณ จุดนี้คำสั่งเช่น

cat /proc/driver/nvidia/version
nvidia-smi
nvcc --version
ls /usr/local/cuda/

ควรให้ข้อผิดพลาดเช่น “ไม่พบคำสั่ง” หรือ “ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว” ถึงเวลาที่จะเสร็จสิ้นขั้นตอนนี้ด้วยการรีบูทด้วย

sudo reboot

2. วิธีการติดตั้งไดรเวอร์การ์ดแสดงผล Nvidia

หมายเหตุ: จำเป็นต้องปิดใช้งาน Secure Boot ของคอมพิวเตอร์ของคุณเพื่อติดตั้งไดรเวอร์ของการ์ดแสดงผลอย่างถูกต้อง หากต้องการทราบว่าเป็นหรือไม่ ให้รีบูตเครื่องแล้วกดปุ่ม "F10" หรือ "F12" หรือ "Suppr" (ขึ้นอยู่กับการกำหนดค่าของคุณ) เพื่อแสดงเมนูการบูตของคอมพิวเตอร์ของคุณ สถานะของ Secure Boot ควรอ่านได้จากจุดนี้หรือภายในเมนูย่อย

ฉันแนะนำให้ติดตั้งไดรเวอร์การ์ดกราฟิก Nvidia จากที่เก็บเริ่มต้นของระบบปฏิบัติการของคุณ ในการทำเช่นนั้น ก่อนอื่นเราต้องอัพเดตรายการแพ็คเกจที่มีอยู่ในที่เก็บและอัพเกรดแพ็คเกจที่ติดตั้งด้วย

sudo apt update && sudo apt upgrade

การดำเนินการนี้อาจใช้เวลาสักครู่ขึ้นอยู่กับครั้งสุดท้ายที่คุณอัปเกรดแพ็คเกจของคุณ

วิธีหนึ่งในการแสดงรายการไดรเวอร์ Nvidia ที่มีอยู่ในที่เก็บของคุณคือการพิมพ์

sudo apt search nvidia-driver
# or
ubuntu-drivers devices

รายการไดรเวอร์ของ Nvidia ควรปรากฏขึ้น และฉันแนะนำให้ติดตั้งเวอร์ชันสูงสุดที่มีอยู่ ณ วันที่เขียน ในกรณีของฉันคือเวอร์ชัน 510.47.03 จากนั้น:

sudo apt install nvidia-driver-510

หมายเหตุ: คุณไม่ควรกังวลมากเกินไปเกี่ยวกับเวอร์ชันไดรเวอร์และความเข้ากันได้ของ CUDA ตามที่กล่าวไว้ใน เว็บไซต์ NVIDIA ไดรเวอร์ใหม่ล่าสุดสามารถใช้งานร่วมกับ CUDA เวอร์ชันก่อนหน้าได้ ซึ่งหมายความว่า CUDA 10.2 ควรทำงานร่วมกับเวอร์ชันไดรเวอร์ 510.47.03 เป็นต้น

จำเป็นต้องรีบูตทันทีอีกครั้งหลังการติดตั้ง:

sudo reboot

ณ จุดนี้ คำสั่ง “nvidia-smi” หรือ “cat /proc/driver/nvidia/version” ควรให้สิ่งที่ต้องการ

แสดงว่าการติดตั้งไดรเวอร์สำเร็จ หากคุณไม่สามารถรับผลลัพธ์เหล่านี้ได้ ฉันขอแนะนำให้กลับมาที่ขั้นตอนที่ 1 และทำซ้ำทุกอย่าง หากยังคงไม่ทำให้การติดตั้งสำเร็จ คุณควรพิจารณาติดตั้ง Ubuntu ใหม่อีกครั้ง (อย่าลืมบันทึกข้อมูลของคุณ)

3. วิธีการติดตั้ง CUDA Toolkit

ในบทความนี้ เรากำลังพยายามรวบรวมแหล่งที่มาของ TensorFlow 2.1 ใน เว็บไซต์ TensorFlow พวกเขาแนะนำให้ติดตั้ง CUDA 10.1 เมื่อต้องการสร้าง TensorFlow 2.1 จากแหล่งที่มา:

ชุดเครื่องมือ CUDA มีวางจำหน่ายทางออนไลน์ เนื่องจากเราต้องการ CUDA เวอร์ชัน "เก่า" เราจึงต้องค้นหาภายใน "archives"

CUDA 10.1 ล่าสุดคือเวอร์ชัน “อัปเดต 2” เมื่อคลิกแล้ว เราต้องตอบคำถามบางข้อเกี่ยวกับระบบปฏิบัติการของเราและวิธีที่เราต้องการติดตั้งชุดเครื่องมือ

สำหรับ Ubuntu 20.04 ควรเลือกเวอร์ชัน Ubuntu 18.04 ฉันเชื่อว่าวิธีที่ง่ายที่สุดในการติดตั้ง CUDA คือการเลือกวิธี runfile (ในเครื่อง) คำสั่งต่างๆ

# Download the runfile
wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
# Give the permission to execute the runfile
sudo chmod +x cuda_10.1.243_418.87.00_linux.run
# Run it
sudo sh cuda_10.1.243_418.87.00_linux.run

จะดาวน์โหลดไฟล์รันไฟล์ CUDA 10.1 ทำให้สามารถเรียกใช้งานได้และเปิดใช้งานการติดตั้ง อย่างไรก็ตาม ในขณะนี้ เนื่องจากเราไม่มี GCC เวอร์ชันที่ถูกต้องบนระบบปฏิบัติการของเรา เราควรสังเกตข้อความแสดงข้อผิดพลาดนี้:

Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.

จากนั้นเราจำเป็นต้องติดตั้งคอมไพเลอร์ GCC เวอร์ชัน 7 และบอก OS ว่าเราต้องการใช้เวอร์ชันนี้เป็นค่าเริ่มต้นเมื่อใช้คำสั่ง “gcc” ตามค่าเริ่มต้น Ubuntu 20.04 เวอร์ชัน GCC คือ 9.3.0 หมายเหตุ: สามารถตรวจสอบเวอร์ชัน GCC ที่มีอยู่ในคอมพิวเตอร์ของคุณได้

ls /usr/bin/gcc*

เราสามารถบรรลุเป้าหมายนี้ได้ด้วยคำสั่ง:

# Install gcc 7.5.0
sudo apt install gcc-7 g++-7
# Remove any previous configuration of gcc and g++ command with 
# update-aternatives
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
# Link the command gcc with the first version "7"
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 20
# Link the command gcc with the second version "9"
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10
# Same with g++ command
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10
# Link the cc/c++ command to the gcc/g++ ones
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++

คำสั่ง update-alternatives ช่วยให้สามารถจัดการเวอร์ชันที่แตกต่างกันของคำสั่ง/เครื่องมือเดียวได้ (อ่านคู่มือสำหรับข้อมูลเชิงลึก) หากจำเป็นต้องเปลี่ยนกลับไปใช้ GCC เวอร์ชันอื่นด้วยเหตุผลบางประการ คุณก็พิมพ์ได้ตลอดเวลา

sudo update-alternatives — config gcc

และเลือกเวอร์ชันที่ดี คำสั่งเพื่อรับเวอร์ชันของคอมไพเลอร์ GCC ที่ใช้

gcc --version

ควรให้

กลับไปที่การติดตั้ง CUDA ของเรา…

sudo sh cuda_10.1.243_418.87.00_linux.run

ตอนนี้ควรจะทำงาน ก่อนอื่นจะเปิดใบอนุญาต Nvidia เพื่อใช้ CUDA Toolkit: ยอมรับโดยพิมพ์ "ยอมรับ" และปุ่ม Enter เมนูใหม่ควรปรากฏขึ้น โดยให้ทางเลือกแก่คุณในการติดตั้ง CUDA Toolkit พร้อมกับไดรเวอร์ GPU (จริงๆ แล้วเป็นเวอร์ชัน 418.87) ตัวอย่าง CUDA และเอกสารประกอบ คุณไม่ควรเลือกไดรเวอร์ของ Nvidia เนื่องจากเราได้ติดตั้งไว้แล้ว นอกจากไดรเวอร์แล้ว ฉันแนะนำให้ติดตั้งทุกอย่าง:

การติดตั้งอาจใช้เวลาสักครู่ หลังจากรีบูตคอมพิวเตอร์เล็กน้อย คุณยังคงต้องเพิ่มเส้นทางของไลบรารี CUDA ของคุณภายใน .bashrc หรือ .profile ของคุณ ไฟล์ CUDA เป็นค่าเริ่มต้นในโฟลเดอร์ /usr/local/:

เพิ่มบรรทัด

export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

ต่อท้ายไฟล์ .bashrc ของคุณด้วย เป็นต้น

nano ~/.bashrc

และอย่าลืมอัปเดตเทอร์มินัลของคุณด้วยเส้นทางใหม่เหล่านี้ด้วย

source ~/.bashrc

ยินดีด้วย คุณติดตั้ง CUDA บนคอมพิวเตอร์ของคุณสำเร็จแล้ว! ตอนนี้คุณควรจะสามารถเปิดคำสั่งได้แล้ว

nvcc --version

และเพื่อให้ได้มาซึ่งสิ่งที่คล้ายกัน

วิธีที่เข้มงวดอีกวิธีหนึ่งในการตรวจสอบว่า CUDA ได้รับการติดตั้งอย่างดีหรือไม่คือการสร้างตัวอย่าง CUDA อาคารจะใช้ไลบรารี CUDA ทุกอันเหนือตัวอย่างโค้ดต่างๆ: หากมีข้อผิดพลาดเกิดขึ้น อาจเป็นเพราะ CUDA ไม่ได้ตั้งค่าอย่างถูกต้อง มาคัดลอกตัวอย่าง CUDA ภายในโฮมไดเร็กตอรี่ของคุณด้วย:

cp -r /usr/local/cuda/samples/ ~/cuda_samples

ในการสร้างตัวอย่าง CUDA เราจำเป็นต้องดาวน์โหลด "การขึ้นต่อกันของบุคคลที่สาม" บางส่วน

sudo apt install freeglut3-dev build-essential libx11-dev     libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev libfreeimage-dev

และเพื่อใช้

cd ~/cuda_samples
make

กระบวนการนี้จะใช้เวลาสักครู่จึงจะเสร็จสิ้น: คุณอาจจะทิ้งคอมพิวเตอร์ไว้ตามลำพังและเตรียมและดื่มกาแฟหรือชาก็ได้ ขึ้นอยู่กับรสนิยมของคุณ :)

ในตอนท้าย เพียงตรวจสอบรายงาน deviceQuery โดยรวมด้วย

./bin/x86_64/linux/release/deviceQuery

รายงานนี้ นอกเหนือจากข้อมูลเชิงปริมาณเกี่ยวกับการประมวลผล GPU ของคุณควรแสดงที่ส่วนท้าย:

Result = PASS

ตอนนี้คุณสามารถมั่นใจได้ว่า CUDA ได้รับการติดตั้งอย่างถูกต้อง

4. วิธีการติดตั้งไฟล์ cuDNN

ดังที่แสดงไว้ข้างต้น การคอมไพล์ซอร์ส TensorFlow 2.1 ต้องใช้ cuDNN เวอร์ชัน 7.6 ไฟล์ cuDNN มีอยู่ในเว็บไซต์ Nvidia สำหรับ "ไฟล์เก็บถาวร cuDNN": ที่นั่น เราจะพบแพ็คเกจ .deb สำหรับ cuDNN 7.6.5 และ CUDA 10.1

สำหรับ Ubuntu 20.04 ไฟล์ Ubuntu 18.04 จะทำงานอีกครั้ง เราจำเป็นต้องดาวน์โหลดทุกอย่าง นั่นคือ Runtime และ Developerer Libraries รวมถึงตัวอย่างโค้ดและคู่มือผู้ใช้ (รวม 3 แพ็คเกจ .deb)

ในการทำเช่นนั้น คุณจะต้องสร้างบัญชี Nvidia หลังจากพิธีการเหล่านี้แล้ว ให้ทำในโฟลเดอร์ดาวน์โหลดของคุณ

sudo dpkg -i libcudnn7*

เพื่อคัดลอกไลบรารี cuDNN ทั้งหมดบนคอมพิวเตอร์ของคุณ ไฟล์ไลบรารี cuDNN อยู่ใน /usr/local/cuda/ วิธีหนึ่งในการตรวจสอบการติดตั้งไฟล์ cuDNN คือการสร้างตัวอย่าง cuDNN คัดลอกตัวอย่างในโฮมไดเร็กตอรี่ของคุณด้วย

cp -r /usr/src/cudnn_samples_v7/ ~/cudnn_samples

และพิมพ์

cd cudnn_samples/mnistCUDNN/
make
./mnistCUDNN

เพื่อสร้างตัวอย่าง cuDNN และตรวจสอบว่ากระบวนการเป็นไปด้วยดี หลังจากคำนวณอย่างรวดเร็วคุณควรได้รับ

Test passed!

ขอแสดงความยินดี (อีกครั้ง)! ติดตั้ง cuDNN บนเครื่องของคุณอย่างถูกต้อง :)

5. วิธีรวบรวม TensorFlow จากแหล่งที่มา

งานจริงเริ่มต้นที่นี่ เตรียมตัวให้พร้อมสำหรับการต่อสู้ครั้งยิ่งใหญ่นี้

หมายเหตุ: ฉันแนะนำให้อ่านบทช่วยสอนทั้งหมดที่มีอยู่ใน TensorFlow เว็บไซต์ ก่อนที่จะดำเนินการต่อด้วยตัวเอง มันจะให้ขั้นตอนทั่วไปในการรวบรวมแหล่งที่มา

ข้อกำหนดแรกคือการสร้างสภาพแวดล้อมเสมือน Python โดยใช้เฟรมเวิร์กสภาพแวดล้อมที่คุณชื่นชอบ โดยส่วนตัวแล้วฉันชอบผู้จัดการสภาพแวดล้อม Anaconda มาสร้างและเปิดใช้งานด้วย

conda create -n tfsource python=3.6
conda activate tfsource

สภาพแวดล้อมที่เรียกว่า “tfsource” จะใช้ Python 3.6 ตามที่เว็บไซต์ TensorFlow แนะนำ เรารู้ว่าจำเป็นต้องติดตั้งการพึ่งพาการคอมไพล์ ขอบคุณ Conda ที่เราต้องทำเท่านั้น

pip install six numpy==1.18.5
pip install keras-preprocessing --no-deps

หมายเหตุ: เวอร์ชัน Numpy มีความสำคัญ ตามที่กล่าวไว้ "ที่นี่" Numpy เวอร์ชันล่าสุดทำให้เกิดข้อผิดพลาด "python:bfloat16_lib" ในระหว่างการคอมไพล์ซอร์สเนื่องจากปัญหาประเภท Python float ฉันเดาว่าปัญหานี้ไม่มีอีกต่อไปสำหรับ TensorFlow เวอร์ชันล่าสุด แต่โปรดระวังสาเหตุของปัญหาที่อาจเกิดขึ้น

สุดท้ายนี้ เราจำเป็นต้องดาวน์โหลด Bazel เวอร์ชันที่ถูกต้องซึ่งจะจัดการการรวบรวมแหล่งที่มาของ TensorFlow ทั้งหมด บนเว็บไซต์ TensorFlow ขอแนะนำให้ใช้ Bazel เวอร์ชัน 0.27.1 เพื่อคอมไพล์ อย่างไรก็ตาม ยังสามารถคอมไพล์โดยใช้เวอร์ชัน 0.29.1 ดังที่กล่าวไว้ในไฟล์ configuration.py ของแหล่งที่มา (เราจะกลับมาที่ไฟล์นี้ในภายหลัง)

ตัวติดตั้ง Bazel มีอยู่ใน "Bazel releases บน GitHub" เราจะดาวน์โหลดไฟล์ติดตั้ง runfile สำหรับ linux-x86_64:

หากต้องการติดตั้ง Bazel เพียงพิมพ์ลงในโฟลเดอร์ดาวน์โหลดของคุณ

chmod +x bazel-0.29.1-installer-linux-x86_64.sh
sudo ./bazel-0.29.1-installer-linux-x86_64.sh

runfile ต้องการสิทธิ์ sudo เพื่อติดตั้ง Bazel หลังจากติดตั้งแล้ว ให้สั่ง

bazel --version

ควรให้

มาสรุปกัน เราได้ติดตั้งไดรเวอร์ Nvidia ล่าสุดและเสถียรแล้ว, GCC 7.5, CUDA 10.1, cuDNN 7.6.5, Python 3.6 และ Bazel 0.29.1 หมายความว่าอัศวินทุกคนที่จะรวบรวม Grail TensorFlow 2.1 มารวมตัวกันรอบโต๊ะกลม ถึงเวลาดาวน์โหลดซอร์สของ TensorFlow แล้ว บทช่วยสอนของเว็บไซต์ TensorFlow ให้คำสั่ง

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.1

เพื่อดาวน์โหลดแหล่งที่มาและเลือกสาขาเวอร์ชัน 2.1 จากรุ่นต่างๆ การคอมไพล์ขับเคลื่อนทั่วโลกโดยสคริปต์การกำหนดค่าภายในไดเร็กทอรี tensorflow พูดให้ถูกก็คือ สคริปต์การกำหนดค่านี้มีสองเวอร์ชัน ได้แก่ สคริปต์ bash และ Python เปิดตัวการกำหนดค่าด้วย

./configure
# or
python configure.py

สคริปต์จะขอการสนับสนุนประเภทต่างๆ ที่คุณต้องการ ในกรณีของฉัน ฉันต้องการเพียง XLA JIT (สำหรับการเร่งความเร็วในการคำนวณ) และรองรับ GPU กระบวนการกำหนดค่าจึงมีลักษณะดังนี้:

อย่างที่คุณเห็น ทุกอย่างเกือบจะเป็นค่าเริ่มต้น ยกเว้นการรองรับ CUDA ตอนนี้เราสามารถเริ่มการรวบรวมได้แล้ว

bazel build --config=cuda --config=v2 //tensorflow/tools/pip_package:build_pip_package

สองตัวเลือก “cuda” และ “v2” บ่งบอกว่าเราต้องการการรองรับ CUDA จริงๆ และเรากำลังรวบรวม TensorFlow ซึ่งมีเวอร์ชันที่ด้อยกว่าหรือเป็น 2.0 พอดี อนิจจา ณ จุดนี้การคอมไพล์อาจเกิดข้อผิดพลาดนี้

error: ambiguating new declaration of 'long int gettid()'

ตามที่อธิบายไว้ "ที่นี่" ปัญหามาจากความไม่ตรงกันที่เกิดจากเวอร์ชันที่ไม่ถูกต้องของไลบรารี GNU C (glibc) ในคำจำกัดความของฟังก์ชัน gettid เพื่อเอาชนะข้อผิดพลาดอันจำกัดนี้ จริงๆ แล้วมันมีแพตช์ที่เขียนโดย Liu Jianjun ซึ่งเดิมสามารถพบได้ในเธรด GitHub ที่แชร์ด้านบน อนิจจามันหมดอายุแล้ว โชคดี และต้องขอบคุณ Vladislav Klim แพตช์นี้ได้รับการบันทึกและทำซ้ำ และสามารถดาวน์โหลดได้ด้วย:

wget https://raw.githubusercontent.com/Desklop/building_tensorflow/master/Add-grpc-fix-for-gettid.patch

ควรวางแพตช์นี้ไว้ในไดเร็กทอรีต้นทางของเทนเซอร์โฟลว์ เมื่อได้แล้วให้ทาโดยใช้

patch -p1 <Add-grpc-fix-for-gettid.patch

ตอนนี้คำสั่ง bazel

bazel build --config=cuda --config=v2 //tensorflow/tools/pip_package:build_pip_package

ควรทำงาน. กระบวนการนี้จะใช้เวลา: สำหรับฉัน ใช้เวลาหนึ่งชั่วโมง อาจใช้เวลานานขึ้นอยู่กับการกำหนดค่าฮาร์ดแวร์ของคุณ เวลาที่เหลือ…

เมื่อการคอมไพล์เสร็จสิ้น คุณสามารถสร้างแพ็คเกจวงล้อของ TensorFlow ที่คุณเพิ่งคอมไพล์ได้ ก็เสร็จเรียบร้อยด้วย

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

สุดท้าย (!) คุณสามารถติดตั้งแพ็คเกจ TensorFlow โดยใช้ pip with

pip install /tmp/tensorflow_pkg/tensorflow-2.1.4-cp36-cp36m-linux_x86_64.whl

เช่นเดียวกับไลบรารี Python ใด ๆ สิ่งนี้จะติดตั้ง TensorFlow 2.1.4 แต่ยังรวมถึงการอ้างอิง TensorFlow ด้วย คำสั่ง

pip show tensorflow

ควรให้

มาลองใช้ฟังก์ชันที่ขึ้นกับ GPU ของ TensorFlow กัน! พิมพ์

python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"

และกด Enter คุณควรเห็น

หมายความว่าไลบรารี CUDA ถูกโหลดอย่างถูกต้องและ

ผลลัพธ์ที่คาดหวังของคำสั่ง python ที่เราใช้ การทดสอบอื่นๆ ควรใช้งานได้ ณ จุดนี้

สนุก! :)))

6. และสำหรับเวอร์ชันอื่น ๆ ?

สำหรับ CUDA/TensorFlow เวอร์ชันอื่นๆ ฉันขอแนะนำให้ปฏิบัติตามตารางความเข้ากันได้ที่มีอยู่ในเว็บไซต์ TensorFlow:

โปรดทราบว่าเพื่อที่จะประสบความสำเร็จ คุณต้องมีการจับคู่ที่ดีระหว่างเวอร์ชัน GCC, Python, Bazel, cuDNN, CUDA และ TensorFlow ตารางนี้แสดงให้คุณเห็นว่าอะไรได้ผลแล้วสำหรับ TensorFlow หรือ CUDA เวอร์ชันที่กำหนด

ฉันอยากจะแนะนำให้ทำตามจิตวิญญาณทั่วไปของบทช่วยสอนนี้ด้วยนั่นคือ

  1. เพื่อติดตั้งไดรเวอร์ Nvidia โดยใช้ที่เก็บระบบปฏิบัติการ
  2. เพื่อติดตั้ง CUDA โดยใช้วิธี runfile โดยไม่ต้องใช้ไดรเวอร์ Nvidia
  3. เพื่อติดตั้ง cuDNN ด้วยแพ็คเกจ .deb หรือไฟล์เก็บถาวร .tar
  4. เพื่อติดตั้ง Bazel โดยใช้ runfile และลองคอมไพล์ TensorFlow

การคอมไพล์จะให้ข้อผิดพลาดอย่างแน่นอน และ ณ จุดนี้ เสิร์ชเอ็นจิ้นที่คุณชื่นชอบคือเพื่อนที่ดีที่สุดของคุณ เช่นเดียวกับคำสั่ง

nvidia-smi
nvcc --version
gcc --version
bazel --version

ที่เป็นประโยชน์มากในการค้นหาต้นตอของปัญหา การรวบรวมตัวอย่าง CUDA และ cuDNN ยังมีประโยชน์อย่างมากในการควบคุมการติดตั้งเครื่องมือทั้งสองนี้อย่างถูกต้อง

นักพัฒนาและนักวิจัยหลายคนได้ลองทำสิ่งที่คุณพยายามทำให้สำเร็จ: มีวิธีแก้ปัญหาอยู่บนอินเทอร์เน็ต อย่าลังเลที่จะสร้างกระทู้ของคุณเอง ผู้คนจะช่วยคุณ

มีความเชื่อมั่น!