16.3. Intel FPGA PAC N3000용 OpenNESS Operator 프로그래밍
Intel FPGA PAC N3000이 vRAN 5G 비트스트림으로 프로그래밍되면 하드웨어는 vRAN 5G 비트스트림으로 Intel FPGA PAC N3000을 노출합니다. 이 비트스트림은 vRAN 워크로드에서 FEC를 가속화하는 데 사용되는 SR-IOV(Single Root I/O Virtualization) VF(가상 기능) 장치를 노출합니다.
클러스터 관리자는 OpenShift Container Platform CLI 또는 웹 콘솔을 사용하여 Intel FPGA PAC N3000에 대한 OpenNESS Operator를 설치할 수 있습니다.
16.3.1. vRAN 비트스트림으로 N3000 프로그래밍 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 vRAN 5G 비트스트림을 사용하여 Intel FPGA PAC N3000을 프로그래밍할 수 있습니다. 이 비트스트림은 vRAN 워크로드에서 전달 오류 수정(FEC)을 가속화하는 데 사용되는 SR-IOV(Single Root I/O Virtualization) VF(가상 기능) 장치를 노출합니다.
FEC(전달 오류 수정)의 역할은 메시지의 특정 비트를 손실하거나 무시할 수 있는 전송 오류를 수정하는 것입니다. 전송 미디어, 간섭 또는 신호 강도의 노이즈로 인해 메시지를 손실하거나 숨길 수 있습니다. FEC가 없으면 가파른 메시지가 다시 전송되어 네트워크 부하에 추가하고 처리량과 대기 시간에 모두 영향을 미칩니다.
사전 요구 사항
- Intel FPGA PAC N3000 카드
- RT 커널 구성을 사용한 Performance Addon Operator
- Intel FPGA PAC N3000용 OpenNESS Operator와 함께 설치된 노드 또는 노드
cluster-admin권한이 있는 사용자로 로그인합니다.참고모든 명령은
vran-acceleration-operators네임스페이스에서 실행됩니다.
절차
vran-acceleration-operators프로젝트로 변경합니다.oc project vran-acceleration-operators
$ oc project vran-acceleration-operatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow pod가 실행 중인지 확인합니다.
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 섹션에서는 설치된 Pod에 대한 정보를 제공합니다.
-
FPGA-driver-daemonset는 필요한 OPAE(Open Programmable Accelerator Engine) 드라이버를 제공하고 로드합니다. -
fpgainfo-exporter는 Prometheus에 N3000 Telemetry 데이터를 제공합니다. -
n
3000-controller-manager가 N3000Node CR을 클러스터에 적용하고 모든 피연산자 컨테이너를 관리합니다. -
N3000-daemonset은 주요 작업자 애플리케이션입니다. 각 노드의 CR의 변경 사항을 모니터링하고 변경 사항에 적용됩니다. 이 데몬에 구현된 논리는 카드의 FPGA 사용자 이미지 및 NIC 펌웨어를 업데이트하는 작업을 담당합니다. 업데이트에 필요한 경우 노드를 드레이닝하고 커미션을 해제합니다. -
N3000-discovery가 설치된 N3000 Accelerator 장치를 검색하고 장치가 있는 경우 작업자 노드에 레이블을 지정합니다.
-
Intel FPGA PAC N3000 카드가 포함된 모든 노드를 가져옵니다.
oc get n3000node
$ oc get n3000nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME FLASH node1 NotRequested
NAME FLASH node1 NotRequestedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 각 노드의 카드 정보를 가져옵니다.
oc get n3000node node1 -o yaml
$ oc get n3000node node1 -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow "0x" 패딩 없이 현재
bitstreamId,PCIAddr, 이름 및deviceId를 저장합니다.oc get n3000node -o json
$ oc get n3000node -o jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow Intel FPGA PAC N3000 카드의 사용자 비트스트림을 업데이트합니다.
다음 예와 같이
n3000-cluster.yaml이라는 파일을 생성하여 프로그래밍할 N3000클러스터 리소스를 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow N3000 데몬은 Open Programmable Acceleration Engine(OPAE) 도구를 사용하여 FPGA 사용자 비트스트림을 업데이트하고 PCI 장치를 재설정합니다. FPGA 사용자 비트스트림 업데이트에는 카드당 최대 40분이 걸릴 수 있습니다. 여러 노드의 프로그래밍 카드의 경우 프로그래밍은 한 번에 하나의 노드씩 실행됩니다.
비트스트림으로 카드 프로그래밍을 시작하려면 업데이트를 적용합니다.
oc apply -f n3000-cluster.yaml
$ oc apply -f n3000-cluster.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow N3000 데몬은
20ww27.5-2x2x25G-5GLDPC-v1.6.1-3.0.0_unsigned.bin과 같이 적절한 5GFEC 사용자 비트스트림이 프로비저닝된 후 비트스트림 프로그래밍을 시작합니다.상태를 확인합니다.
oc get n3000node
oc get n3000nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME FLASH node1 InProgress
NAME FLASH node1 InProgressCopy to Clipboard Copied! Toggle word wrap Toggle overflow
로그를 확인합니다.
N3000 데몬의 Pod 이름을 확인합니다.
oc get pod -o wide | grep n3000-daemonset | grep node1
$ oc get pod -o wide | grep n3000-daemonset | grep node1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
n3000-daemonset-5k55l 1/1 Running 0 15d
n3000-daemonset-5k55l 1/1 Running 0 15dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 로그를 확인합니다.
oc logs n3000-daemonset-5k55l
$ oc logs n3000-daemonset-5k55lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그 파일은 다음과 같은 이벤트 흐름을 나타냅니다.
- 비트스트림을 다운로드하고 검증합니다.
- 노드가 드레인되어 이 시간 동안 실행할 수 있는 워크로드가 없습니다.
플래시가 시작됨:
- 비트스트림은 카드로 깜박여집니다.
- 비트스트림이 적용됩니다.
- 플래시를 완료하면 노드 또는 노드의 PCI 장치 또는 장치가 다시 로드됩니다. 이제 FEC Accelerator용 OpenNESS SR-IOV Operator에서 새로 깜빡이는 장치 또는 장치를 찾을 수 있습니다.
검증
FPGA 사용자 비트스트림 업데이트가 완료된 후 상태를 확인합니다.
oc get n3000node
oc get n3000nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME FLASH node1 Succeeded
NAME FLASH node1 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow 카드의 비트 스트림 ID가 변경되었는지 확인합니다.
oc get n3000node node1 -o yaml
oc get n3000node node1 -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드에서 FEC PCI 장치를 확인합니다.
노드 구성이 올바르게 적용되었는지 확인합니다.
oc debug node/node1
$ oc debug node/node1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드 파일 시스템을 사용할 수 있는지 확인합니다.
chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
sh-4.4#
sh-4.4#Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템의 액셀러레이터와 연결된 PCI 장치를 나열합니다.
lspci | grep accelerators
$ lspci | grep acceleratorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
1b:00.0 Processing accelerators: Intel Corporation Device 0b30 1d:00.0 Processing accelerators: Intel Corporation Device 0d8f (rev 01)
1b:00.0 Processing accelerators: Intel Corporation Device 0b30 1d:00.0 Processing accelerators: Intel Corporation Device 0d8f (rev 01)Copy to Clipboard Copied! Toggle word wrap Toggle overflow FPGA에 속하는 장치는 출력에 보고됩니다. 장치 ID
0b30은 카드를 프로그래밍하는 데 사용되는 RSU 인터페이스이며0d8f는 새로 프로그래밍된 5G 장치의 물리적 기능입니다.