[LLM] Change default Linux GPU install option to PyTorch 2.1 (#9858)
* Update default xpu to ipex 2.1 * Update related install ut support correspondingly * Add arc ut tests for both ipex 2.0 and 2.1 * Small fix * Diable ipex 2.1 test for now as oneapi 2024.0 has not beed installed on the test machine * Update document for default PyTorch 2.1 * Small fix * Small fix * Small doc fixes * Small fixes
This commit is contained in:
		
							parent
							
								
									ed81baa35e
								
							
						
					
					
						commit
						5ba1dc38d4
					
				
					 4 changed files with 50 additions and 18 deletions
				
			
		
							
								
								
									
										1
									
								
								.github/actions/llm/setup-llm-env/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/actions/llm/setup-llm-env/action.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -18,7 +18,6 @@ runs:
 | 
			
		|||
        pip uninstall bigdl-core-xe-esimd-21 -y || true
 | 
			
		||||
        sed -i 's/"bigdl-core-xe==" + VERSION + "/"bigdl-core-xe/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-esimd==" + VERSION + "/"bigdl-core-xe-esimd/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-21==" + VERSION + "/"bigdl-core-xe-21/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-21==" + VERSION/"bigdl-core-xe-21"/g' python/llm/setup.py
 | 
			
		||||
        sed -i 's/"bigdl-core-xe-esimd-21==" + VERSION + "/"bigdl-core-xe-esimd-21/g' python/llm/setup.py
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								.github/workflows/llm_unit_tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								.github/workflows/llm_unit_tests.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -208,7 +208,19 @@ jobs:
 | 
			
		|||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        python-version: ["3.9","3.10","3.11"]
 | 
			
		||||
        include:
 | 
			
		||||
          # - pytorch-version: "2.1"
 | 
			
		||||
          #   python-version: "3.9"
 | 
			
		||||
          # - pytorch-version: "2.1"
 | 
			
		||||
          #   python-version: "3.10"
 | 
			
		||||
          # - pytorch-version: "2.1"
 | 
			
		||||
          #   python-version: "3.11"
 | 
			
		||||
          - pytorch-version: "2.0"
 | 
			
		||||
            python-version: "3.9"
 | 
			
		||||
          - pytorch-version: "2.0"
 | 
			
		||||
            python-version: "3.10"
 | 
			
		||||
          - pytorch-version: "2.0"
 | 
			
		||||
            python-version: "3.11"
 | 
			
		||||
    runs-on: [self-hosted, llm, arc]
 | 
			
		||||
    env:
 | 
			
		||||
      OMP_NUM_THREADS: 16
 | 
			
		||||
| 
						 | 
				
			
			@ -246,15 +258,20 @@ jobs:
 | 
			
		|||
      - name: Download llm binary
 | 
			
		||||
        uses: ./.github/actions/llm/download-llm-binary
 | 
			
		||||
 | 
			
		||||
      - name: Run LLM install (all) test
 | 
			
		||||
      - name: Install BigDL-LLM for xpu
 | 
			
		||||
        uses: ./.github/actions/llm/setup-llm-env
 | 
			
		||||
        with:
 | 
			
		||||
          extra-dependency: "xpu_2.0"
 | 
			
		||||
          extra-dependency: "xpu_${{ matrix.pytorch-version }}"
 | 
			
		||||
 | 
			
		||||
      - name: Test installed xpu version
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          # TODO: differentiate oneapi path after oneapi 2024.0 is installed on test machine
 | 
			
		||||
          if [[ '${{ matrix.pytorch-version }}' == '2.1' ]]; then
 | 
			
		||||
            source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          elif [[ '${{ matrix.pytorch-version }}' == '2.0' ]]; then
 | 
			
		||||
            source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          fi
 | 
			
		||||
          bash python/llm/test/run-llm-install-tests.sh
 | 
			
		||||
 | 
			
		||||
      - name: Download LLMs and datasets
 | 
			
		||||
| 
						 | 
				
			
			@ -295,7 +312,12 @@ jobs:
 | 
			
		|||
      - name: Run LLM inference test
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          # TODO: differentiate oneapi path after oneapi 2024.0 is installed on test machine
 | 
			
		||||
          if [[ '${{ matrix.pytorch-version }}' == '2.1' ]]; then
 | 
			
		||||
            source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          elif [[ '${{ matrix.pytorch-version }}' == '2.0' ]]; then
 | 
			
		||||
            source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          fi
 | 
			
		||||
          python -m pip install datasets librosa soundfile einops
 | 
			
		||||
          bash python/llm/test/run-llm-inference-tests-gpu.sh
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -304,5 +326,10 @@ jobs:
 | 
			
		|||
        run: |
 | 
			
		||||
          python -m pip install transformers==4.34.0 peft==0.5.0 accelerate==0.23.0
 | 
			
		||||
          python -m pip install bitsandbytes scipy
 | 
			
		||||
          source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          # TODO: differentiate oneapi path after oneapi 2024.0 is installed on test machine
 | 
			
		||||
          if [[ '${{ matrix.pytorch-version }}' == '2.1' ]]; then
 | 
			
		||||
            source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          elif [[ '${{ matrix.pytorch-version }}' == '2.0' ]]; then
 | 
			
		||||
            source /opt/intel/oneapi/setvars.sh
 | 
			
		||||
          fi
 | 
			
		||||
          bash python/llm/test/run-llm-example-tests-gpu.sh
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +101,7 @@ BigDL-LLM for GPU supports on Linux has been verified on:
 | 
			
		|||
```eval_rst
 | 
			
		||||
.. important::
 | 
			
		||||
 | 
			
		||||
    BigDL-LLM on Linux only supports PyTorch 2.0 and PyTorch 2.1.
 | 
			
		||||
    BigDL-LLM on Linux supports PyTorch 2.0 and PyTorch 2.1.
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```eval_rst
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +171,16 @@ We recommend using [miniconda](https://docs.conda.io/en/latest/miniconda.html) t
 | 
			
		|||
         conda create -n llm python=3.9
 | 
			
		||||
         conda activate llm
 | 
			
		||||
 | 
			
		||||
         pip install --pre --upgrade bigdl-llm[xpu_2.1] -f https://developer.intel.com/ipex-whl-stable-xpu
 | 
			
		||||
         pip install --pre --upgrade bigdl-llm[xpu] -f https://developer.intel.com/ipex-whl-stable-xpu
 | 
			
		||||
 | 
			
		||||
      .. note::
 | 
			
		||||
 | 
			
		||||
         The ``xpu`` option will install BigDL-LLM with PyTorch 2.1 by default, which is equivalent to
 | 
			
		||||
 | 
			
		||||
         .. code-block:: bash
 | 
			
		||||
 | 
			
		||||
            pip install --pre --upgrade bigdl-llm[xpu_2.1] -f https://developer.intel.com/ipex-whl-stable-xpu
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
   .. tab:: Pytorch 2.0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +189,7 @@ We recommend using [miniconda](https://docs.conda.io/en/latest/miniconda.html) t
 | 
			
		|||
         conda create -n llm python=3.9
 | 
			
		||||
         conda activate llm
 | 
			
		||||
 | 
			
		||||
         pip install --pre --upgrade bigdl-llm[xpu] -f https://developer.intel.com/ipex-whl-stable-xpu
 | 
			
		||||
         pip install --pre --upgrade bigdl-llm[xpu_2.0] -f https://developer.intel.com/ipex-whl-stable-xpu
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -288,12 +288,9 @@ def setup_package():
 | 
			
		|||
                        "intel_extension_for_pytorch==2.1.10+xpu",
 | 
			
		||||
                        "bigdl-core-xe-21==" + VERSION,
 | 
			
		||||
                        "bigdl-core-xe-esimd-21==" + VERSION + ";platform_system=='Linux'"]
 | 
			
		||||
    # default to ipex 2.0 for linux and 2.1 for windows
 | 
			
		||||
    xpu_requires = copy.deepcopy(xpu_20_requires)
 | 
			
		||||
    xpu_requires.extend(["torch==2.1.0a0;platform_system=='Windows'",
 | 
			
		||||
                         "torchvision==0.16.0a0;platform_system=='Windows'",
 | 
			
		||||
                         "intel_extension_for_pytorch==2.1.10+xpu;platform_system=='Windows'",
 | 
			
		||||
                         "bigdl-core-xe-21==" + VERSION + ";platform_system=='Windows'"])
 | 
			
		||||
    # default to ipex 2.1 for linux and windows
 | 
			
		||||
    xpu_requires = copy.deepcopy(xpu_21_requires)
 | 
			
		||||
 | 
			
		||||
    serving_requires = ['py-cpuinfo']
 | 
			
		||||
    serving_requires += SERVING_DEP
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -319,7 +316,7 @@ def setup_package():
 | 
			
		|||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        extras_require={"all": all_requires,
 | 
			
		||||
                        "xpu": xpu_requires,  # default to ipex 2.0 for linux and 2.1 for windows
 | 
			
		||||
                        "xpu": xpu_requires,  # default to ipex 2.1 for linux and windows
 | 
			
		||||
                        "xpu-2-0": xpu_20_requires,
 | 
			
		||||
                        "xpu-2-1": xpu_21_requires,
 | 
			
		||||
                        "serving": serving_requires},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue