<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # LightGBM GPU 教程 本文檔的目的在于一步步教你快速上手 GPU 訓練。 對于 Windows, 請參閱 [GPU Windows 教程](./GPU-Windows.rst). 我們將用 [Microsoft Azure cloud computing platform](https://azure.microsoft.com/) 上的 GPU 實例做演示, 但你可以使用具有現代 AMD 或 NVIDIA GPU 的任何機器。 ## GPU 安裝 你需要在 Azure (East US, North Central US, South Central US, West Europe 以及 Southeast Asia 等區域都可用)上啟動一個 `NV` 類型的實例 并選擇 Ubuntu 16.04 LTS 作為操作系統。 經測試, `NV6` 類型的虛擬機是滿足最小需求的, 這種虛擬機包括 1/2 M60 GPU, 8 GB 內存, 180 GB/s 的內存帶寬以及 4,825 GFLOPS 的峰值計算能力。 不要使用 `NC` 類型的實例,因為這些 GPU (K80) 是基于較老的架構 (Kepler). 首先我們需要安裝精簡版的 NVIDIA 驅動和 OpenCL 開發環境: ``` sudo apt-get update sudo apt-get install --no-install-recommends nvidia-375 sudo apt-get install --no-install-recommends nvidia-opencl-icd-375 nvidia-opencl-dev opencl-headers ``` 安裝完驅動以后需要重新啟動服務器。 ``` sudo init 6 ``` 大約 30 秒后,服務器可以重新運轉。 如果你正在使用 AMD GPU, 你需要下載并安裝 [AMDGPU-Pro](http://support.amd.com/en-us/download/linux) 驅動,同時安裝 `ocl-icd-libopencl1` 和 `ocl-icd-opencl-dev` 兩個包。 ## 編譯 LightGBM 現在安裝必要的生成工具和依賴: ``` sudo apt-get install --no-install-recommends git cmake build-essential libboost-dev libboost-system-dev libboost-filesystem-dev ``` `NV6` GPU 實例自帶一個 320 GB 的極速 SSD,掛載在 `/mnt` 目錄下。 我們把它作為我們的工作環境(如果你正在使用自己的機器,可以跳過該步): ``` sudo mkdir -p /mnt/workspace sudo chown $(whoami):$(whoami) /mnt/workspace cd /mnt/workspace ``` 現在我們可以準備好校驗 LightGBM 并使用 GPU 支持來編譯它: ``` git clone --recursive https://github.com/Microsoft/LightGBM cd LightGBM mkdir build ; cd build cmake -DUSE_GPU=1 .. # if you have installed the NVIDIA OpenGL, please using following instead # sudo cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -OpenCL_INCLUDE_DIR=/usr/local/cuda/include/ .. make -j$(nproc) cd .. ``` 你可以看到有兩個二進制文件生成了,`lightgbm` 和 `lib_lightgbm.so` 如果你正在 OSX 系統上編譯,你可能需要在 `src/treelearner/gpu_tree_learner.h` 中移除 `BOOST_COMPUTE_USE_OFFLINE_CACHE` 宏指令以避免 Boost.Compute 中的沖突錯誤。 ## 安裝 Python 接口 (可選) 如果你希望使用 LightGBM 的 Python 接口,你現在可以安裝它(同時包括一些必要的 Python 依賴包): ``` sudo apt-get -y install python-pip sudo -H pip install setuptools numpy scipy scikit-learn -U cd python-package/ sudo python setup.py install --precompile cd .. ``` 你需要設置一個額外的參數 `"device" : "gpu"` (同時也包括其他選項如 `learning_rate`, `num_leaves`, 等等)來在 Python 中使用 GPU. 你可以閱讀我們的 [Python Package Examples](https://github.com/Microsoft/LightGBM/tree/master/examples/python-guide) 來獲取更多關于如何使用 Python 接口的信息。 ## 數據集準備 使用如下命令來準備 Higgs 數據集 ``` git clone https://github.com/guolinke/boosting_tree_benchmarks.git cd boosting_tree_benchmarks/data wget "https://archive.ics.uci.edu/ml/machine-learning-databases/00280/HIGGS.csv.gz" gunzip HIGGS.csv.gz python higgs2libsvm.py cd ../.. ln -s boosting_tree_benchmarks/data/higgs.train ln -s boosting_tree_benchmarks/data/higgs.test ``` 現在我們可以通過運行如下命令來為 LightGBM 創建一個配置文件(請復制整段代碼塊并作為一個整體來運行它): ``` cat > lightgbm_gpu.conf <<EOF max_bin = 63 num_leaves = 255 num_iterations = 50 learning_rate = 0.1 tree_learner = serial task = train is_training_metric = false min_data_in_leaf = 1 min_sum_hessian_in_leaf = 100 ndcg_eval_at = 1,3,5,10 sparse_threshold = 1.0 device = gpu gpu_platform_id = 0 gpu_device_id = 0 EOF echo "num_threads=$(nproc)" >> lightgbm_gpu.conf ``` 我們可以通過在配置文件中設置 `device=gpu` 來使 GPU 處于可用狀態。 默認將使用系統安裝的第一個 GPU (`gpu_platform_id=0` 以及 `gpu_device_id=0`). ## 在 GPU 上運行你的第一個學習任務 現在我們可以準備開始用 GPU 做訓練了! 首先我們希望確保 GPU 能夠正確工作。 運行如下代碼來在 GPU 上訓練,并記錄下 50 次迭代后的 AUC。 ``` ./lightgbm config=lightgbm_gpu.conf data=higgs.train valid=higgs.test objective=binary metric=auc ``` 現在用如下代碼在 CPU 上訓練相同的數據集. 你應該能觀察到相似的 AUC: ``` ./lightgbm config=lightgbm_gpu.conf data=higgs.train valid=higgs.test objective=binary metric=auc device=cpu ``` 現在我們可以不計算 AUC,每次迭代后進行 GPU 上的速度測試。 ``` ./lightgbm config=lightgbm_gpu.conf data=higgs.train objective=binary metric=auc ``` CPU 的速度測試: ``` ./lightgbm config=lightgbm_gpu.conf data=higgs.train objective=binary metric=auc device=cpu ``` 你可以觀察到在該 GPU 上加速了超過三倍. GPU 加速也可以用于其他任務/指標上(回歸,多類別分類器,排序,等等). 比如,我們可以在一個回歸任務下訓練 Higgs 數據集: ``` ./lightgbm config=lightgbm_gpu.conf data=higgs.train objective=regression_l2 metric=l2 ``` 同樣地, 你也可以比較 CPU 上的訓練速度: ``` ./lightgbm config=lightgbm_gpu.conf data=higgs.train objective=regression_l2 metric=l2 device=cpu ``` ## 進一步閱讀 * [GPU 優化指南和性能比較](./GPU-Performance.rst) * [GPU SDK Correspondence and Device Targeting Table](./GPU-Targets.rst) * [GPU Windows 教程](./GPU-Windows.rst) ## 參考 如果您覺得 GPU 加速很有用,希望您在著作中能夠引用如下文章; Huan Zhang, Si Si and Cho-Jui Hsieh. “[GPU Acceleration for Large-scale Tree Boosting](https://arxiv.org/abs/1706.08359).” arXiv:1706.08359, 2017.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看