FuriosaAI Warboy 설치 확인 방법

  1. Hardware 설치

    $ sudo update-pciids
    
    $ lspci | grep accelerators
    1a:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    1b:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    1c:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    1d:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    1e:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    3d:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    3e:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    3f:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    41:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    88:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    89:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    8a:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    8c:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    b1:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    b2:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    b3:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    b4:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    b5:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01)
    

    물리적으로 장착에 문제가 있는 경우 PCIe Level에서 장치가 검색이 되지 않음.
    이 경우 재장착을 진행해야함.

    Processing accelerators: FuriosaAI, Inc. Warboy (rev 01) 가 장치 정상 상태.

    Processing accelerators: FuriosaAI, Inc. Warboy (rev ff)로 표기되면 장치 비정상 상태로 점검이 필요함.

  2. Software 설치

    [드라이버, 펌웨어, 런타임(public)] (드라이버, 펌웨어, 런타임 설치 가이드 — FuriosaAI NPU 및 Software 문서 0.9.0 문서)

    apt search 명령어를 통해서 목록을 확인 할 수 있다.(repo 설정이 정상적으로 이뤄졌다면)

    $ apt search furiosa
    
    furiosa-compiler/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-driver-pdma/focal-nightly 1.3.0-2+nightly-220523 amd64 [upgradable from: 1.3.0]
    furiosa-libcompiler/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-libhal-sim/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-libhal-warboy/focal-nightly 0.9.0-2+nightly-221022 amd64 [upgradable from: 0.9.0-2+nightly-221019]
    furiosa-libhal-xrt/focal-nightly 0.9.0-2+nightly-221022 amd64
    furiosa-libnpu-sim/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-libnpu-warboy/focal,focal-nightly 0.5.2-2+nightly-220221 all
    furiosa-libnux-dev/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-libnux-extrinsic/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-libnux/focal-nightly 0.8.0-2+nightly-221022 amd64
    furiosa-toolkit/focal 0.9.1-2 amd64
    

    SDK를 사용하기 위해서 필요한 설치사항은 아래와 같다.

    $ apt-get update && apt-get install -y furiosa-libhal-warboy furiosa-libnux furiosa-driver-pdma
    

    (optional) furiosactl

    $ apt-get install furiosa-toolkit
    

    npu의 정보, 할당 된 프로세스 등을 간단하게 검색 가능함.

    npu에 프로세스가 할당 되어 작업중인 경우 드라이버 최신화 및 재설치가 정상적으로 이뤄지지 않음
    이런 경우 해당 기능을 통해서 필요한 내용을 수집 가능함.

  3. Driver 검사 방법

    드라이버가 정상 설치 되었는지 아닌지 다음과 같은 Step으로 확인 가능함.
    a. lsmod | grep npu

    $ lsmod | grep npu
    npu_pdma               81920  8
    npu_mgmt               81920  5 npu_pdma
    input_leds             16384  0
    

    npu가 정상적으로 설치 되었다면 다음과 같이 드라이버가 정상 인식 되는것을 볼수 있다.

    b. ls /dev/npu*

    $ ls /dev/npu*
    /dev/npu0        /dev/npu10ch2    /dev/npu11pe0    /dev/npu13ch0    /dev/npu14ch7    /dev/npu16_bar2  /dev/npu17ch5    /dev/npu2_bar0  /dev/npu3ch4    /dev/npu4pe1    /dev/npu6ch2    /dev/npu7pe0    /dev/npu9ch0
    /dev/npu0_bar0   /dev/npu10ch3    /dev/npu11pe0-1  /dev/npu13ch1    /dev/npu14_mgmt  /dev/npu16_bar4  /dev/npu17ch6    /dev/npu2_bar2  /dev/npu3ch5    /dev/npu5       /dev/npu6ch3    /dev/npu7pe0-1  /dev/npu9ch1
    /dev/npu0_bar2   /dev/npu10ch4    /dev/npu11pe1    /dev/npu13ch2    /dev/npu14pe0    /dev/npu16ch0    /dev/npu17ch7    /dev/npu2_bar4  /dev/npu3ch6    /dev/npu5_bar0  /dev/npu6ch4    /dev/npu7pe1    /dev/npu9ch2
    /dev/npu0_bar4   /dev/npu10ch5    /dev/npu12       /dev/npu13ch3    /dev/npu14pe0-1  /dev/npu16ch1    /dev/npu17_mgmt  /dev/npu2ch0    /dev/npu3ch7    /dev/npu5_bar2  /dev/npu6ch5    /dev/npu8       /dev/npu9ch3
    /dev/npu0ch0     /dev/npu10ch6    /dev/npu12_bar0  /dev/npu13ch4    /dev/npu14pe1    /dev/npu16ch2    /dev/npu17pe0    /dev/npu2ch1    /dev/npu3_mgmt  /dev/npu5_bar4  /dev/npu6ch6    /dev/npu8_bar0  /dev/npu9ch4
    /dev/npu0ch1     /dev/npu10ch7    /dev/npu12_bar2  /dev/npu13ch5    /dev/npu15       /dev/npu16ch3    /dev/npu17pe0-1  /dev/npu2ch2    /dev/npu3pe0    /dev/npu5ch0    /dev/npu6ch7    /dev/npu8_bar2  /dev/npu9ch5
    /dev/npu0ch2     /dev/npu10_mgmt  /dev/npu12_bar4  /dev/npu13ch6    /dev/npu15_bar0  /dev/npu16ch4    /dev/npu17pe1    /dev/npu2ch3    /dev/npu3pe0-1  /dev/npu5ch1    /dev/npu6_mgmt  /dev/npu8_bar4  /dev/npu9ch6
    /dev/npu0ch3     /dev/npu10pe0    /dev/npu12ch0    /dev/npu13ch7    /dev/npu15_bar2  /dev/npu16ch5    /dev/npu1_bar0   /dev/npu2ch4    /dev/npu3pe1    /dev/npu5ch2    /dev/npu6pe0    /dev/npu8ch0    /dev/npu9ch7
    /dev/npu0ch4     /dev/npu10pe0-1  /dev/npu12ch1    /dev/npu13_mgmt  /dev/npu15_bar4  /dev/npu16ch6    /dev/npu1_bar2   /dev/npu2ch5    /dev/npu4       /dev/npu5ch3    /dev/npu6pe0-1  /dev/npu8ch1    /dev/npu9_mgmt
    /dev/npu0ch5     /dev/npu10pe1    /dev/npu12ch2    /dev/npu13pe0    /dev/npu15ch0    /dev/npu16ch7    /dev/npu1_bar4   /dev/npu2ch6    /dev/npu4_bar0  /dev/npu5ch4    /dev/npu6pe1    /dev/npu8ch2    /dev/npu9pe0
    /dev/npu0ch6     /dev/npu11       /dev/npu12ch3    /dev/npu13pe0-1  /dev/npu15ch1    /dev/npu16_mgmt  /dev/npu1ch0     /dev/npu2ch7    /dev/npu4_bar2  /dev/npu5ch5    /dev/npu7       /dev/npu8ch3    /dev/npu9pe0-1
    /dev/npu0ch7     /dev/npu11_bar0  /dev/npu12ch4    /dev/npu13pe1    /dev/npu15ch2    /dev/npu16pe0    /dev/npu1ch1     /dev/npu2_mgmt  /dev/npu4_bar4  /dev/npu5ch6    /dev/npu7_bar0  /dev/npu8ch4    /dev/npu9pe1
    /dev/npu0_mgmt   /dev/npu11_bar2  /dev/npu12ch5    /dev/npu14       /dev/npu15ch3    /dev/npu16pe0-1  /dev/npu1ch2     /dev/npu2pe0    /dev/npu4ch0    /dev/npu5ch7    /dev/npu7_bar2  /dev/npu8ch5
    /dev/npu0pe0     /dev/npu11_bar4  /dev/npu12ch6    /dev/npu14_bar0  /dev/npu15ch4    /dev/npu16pe1    /dev/npu1ch3     /dev/npu2pe0-1  /dev/npu4ch1    /dev/npu5_mgmt  /dev/npu7_bar4  /dev/npu8ch6
    /dev/npu0pe0-1   /dev/npu11ch0    /dev/npu12ch7    /dev/npu14_bar2  /dev/npu15ch5    /dev/npu17       /dev/npu1ch4     /dev/npu2pe1    /dev/npu4ch2    /dev/npu5pe0    /dev/npu7ch0    /dev/npu8ch7
    /dev/npu0pe1     /dev/npu11ch1    /dev/npu12_mgmt  /dev/npu14_bar4  /dev/npu15ch6    /dev/npu17_bar0  /dev/npu1ch5     /dev/npu3       /dev/npu4ch3    /dev/npu5pe0-1  /dev/npu7ch1    /dev/npu8_mgmt
    /dev/npu1        /dev/npu11ch2    /dev/npu12pe0    /dev/npu14ch0    /dev/npu15ch7    /dev/npu17_bar2  /dev/npu1ch6     /dev/npu3_bar0  /dev/npu4ch4    /dev/npu5pe1    /dev/npu7ch2    /dev/npu8pe0
    /dev/npu10       /dev/npu11ch3    /dev/npu12pe0-1  /dev/npu14ch1    /dev/npu15_mgmt  /dev/npu17_bar4  /dev/npu1ch7     /dev/npu3_bar2  /dev/npu4ch5    /dev/npu6       /dev/npu7ch3    /dev/npu8pe0-1
    /dev/npu10_bar0  /dev/npu11ch4    /dev/npu12pe1    /dev/npu14ch2    /dev/npu15pe0    /dev/npu17ch0    /dev/npu1_mgmt   /dev/npu3_bar4  /dev/npu4ch6    /dev/npu6_bar0  /dev/npu7ch4    /dev/npu8pe1
    /dev/npu10_bar2  /dev/npu11ch5    /dev/npu13       /dev/npu14ch3    /dev/npu15pe0-1  /dev/npu17ch1    /dev/npu1pe0     /dev/npu3ch0    /dev/npu4ch7    /dev/npu6_bar2  /dev/npu7ch5    /dev/npu9
    /dev/npu10_bar4  /dev/npu11ch6    /dev/npu13_bar0  /dev/npu14ch4    /dev/npu15pe1    /dev/npu17ch2    /dev/npu1pe0-1   /dev/npu3ch1    /dev/npu4_mgmt  /dev/npu6_bar4  /dev/npu7ch6    /dev/npu9_bar0
    /dev/npu10ch0    /dev/npu11ch7    /dev/npu13_bar2  /dev/npu14ch5    /dev/npu16       /dev/npu17ch3    /dev/npu1pe1     /dev/npu3ch2    /dev/npu4pe0    /dev/npu6ch0    /dev/npu7ch7    /dev/npu9_bar2
    /dev/npu10ch1    /dev/npu11_mgmt  /dev/npu13_bar4  /dev/npu14ch6    /dev/npu16_bar0  /dev/npu17ch4    /dev/npu2        /dev/npu3ch3    /dev/npu4pe0-1  /dev/npu6ch1    /dev/npu7_mgmt  /dev/npu9_bar4
    

    드라이버가 정상적이라면 위와 같이 npu의 채널등을 확인 할 수 있으나
    비정상적인 상태라면 /dev/ 하단에 npu와 관련한 채널 및 pe를 확인 할 수 없음.