Skip to content

Commit 8dceb7d

Browse files
authored
feat: enable WCL NPU detection in main_installer.sh (#1013) (#563)
1 parent eecb8c1 commit 8dceb7d

1 file changed

Lines changed: 49 additions & 14 deletions

File tree

main_installer.sh

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -188,18 +188,18 @@ verify_ubuntu_24() {
188188
fi
189189
}
190190

191-
# Install NPU drivers (Core Ultra only)
191+
# Install NPU drivers (NPU-capable platforms only)
192192
install_npu_drivers() {
193-
# Explicit guard: Only install NPU drivers on Core Ultra platforms
194-
if ! is_coreultra; then
195-
echo "$S_ERROR NPU drivers are only supported on Core Ultra platforms"
193+
# Explicit guard: Only install NPU drivers on NPU-capable platforms
194+
if ! is_npu_capable; then
195+
echo "$S_ERROR NPU drivers are only supported on NPU-capable platforms"
196196
echo "Current platform: $CPU_MODEL"
197197
echo "Skipping NPU driver installation"
198198
return 0
199199
fi
200200

201-
echo "Installing NPU drivers for Core Ultra platform..."
202-
echo "$S_VALID NPU driver installation is supported on this Core Ultra platform"
201+
echo "Installing NPU drivers for $(npu_platform_label) platform..."
202+
echo "$S_VALID NPU driver installation is supported on this $(npu_platform_label) platform"
203203

204204
# Execute the script instead of sourcing it to avoid context issues
205205
# shellcheck disable=SC1091
@@ -381,15 +381,17 @@ verify_opencl_setup() {
381381
PLATFORM_FAMILY=""
382382
CPU_MODEL=""
383383
IS_COREULTRA=false
384+
IS_WCL=false
384385
PTL_PLATFORM=false
385386

386387
# Detect platform information
387388
detect_platform() {
388389
echo "Detecting platform family..."
390+
local wcl_regex='^Intel\(R\) Core\(TM\) (3|5|7) 3[0-9]{2}[[:alpha:]]*([[:space:]]|$)'
389391

390392
# Get CPU model
391393
CPU_MODEL=$(grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | sed 's/^[ \t]*//' || echo "unknown")
392-
394+
393395
# Detect platform family using a case statement for better readability
394396
case "$CPU_MODEL" in
395397
*Ultra*)
@@ -404,6 +406,10 @@ detect_platform() {
404406
;;
405407
*Core*)
406408
PLATFORM_FAMILY="core"
409+
# For core family, detect if this is a WCL Core 3 300-series variant
410+
if [[ "$CPU_MODEL" =~ $wcl_regex ]]; then
411+
IS_WCL=true
412+
fi
407413
;;
408414
*Processor*)
409415
PLATFORM_FAMILY="processor"
@@ -422,6 +428,35 @@ is_coreultra() {
422428
[ "$IS_COREULTRA" = true ]
423429
}
424430

431+
# Check if WCL platform
432+
is_wcl() {
433+
[ "$IS_WCL" = true ]
434+
}
435+
436+
# Check if platform supports NPU installation
437+
is_npu_capable() {
438+
if is_coreultra; then
439+
return 0
440+
fi
441+
442+
if [ "$PLATFORM_FAMILY" = "core" ] && is_wcl; then
443+
return 0
444+
fi
445+
446+
return 1
447+
}
448+
449+
# Platform label for NPU-capable systems
450+
npu_platform_label() {
451+
if is_coreultra; then
452+
echo "Core Ultra"
453+
elif is_wcl; then
454+
echo "Intel® Core™ 3 300-series"
455+
else
456+
echo "NPU-capable"
457+
fi
458+
}
459+
425460
# Check if PTL platform
426461
is_ptl_platform() {
427462
[ "$PTL_PLATFORM" = true ]
@@ -524,37 +559,37 @@ main() {
524559
echo "$S_VALID Platform detected: $CPU_MODEL"
525560

526561
# Determine platform family and execute appropriate flow
527-
if is_coreultra; then
562+
if is_npu_capable; then
528563
echo ""
529564
echo "========================================================================"
530-
echo "# CORE ULTRA PLATFORM INSTALLATION"
565+
echo "# NPU-CAPABLE PLATFORM INSTALLATION"
531566
echo "========================================================================"
532-
echo "Platform: Core Ultra CPU"
567+
echo "Platform: $(npu_platform_label) CPU"
533568
echo "Components: GPU Drivers + NPU Drivers + OpenVINO"
534569
echo "NPU Support: Available and will be installed"
535570
echo ""
536571

537572
# Install GPU drivers (will check for GPU presence). Any failure will exit.
538573
install_gpu_drivers
539574

540-
# Install NPU drivers (Core Ultra only)
575+
# Install NPU drivers (NPU-capable platforms only)
541576
install_npu_drivers || echo "$S_WARNING NPU driver installation had issues"
542577

543578
# Install OpenVINO with error handling
544579
if ! install_openvino; then
545-
echo "$S_ERROR Core Ultra platform setup incomplete due to OpenVINO installation failure"
580+
echo "$S_ERROR $(npu_platform_label) platform setup incomplete due to OpenVINO installation failure"
546581
echo "You may retry OpenVINO installation manually: bash $SCRIPT_DIR/openvino_installer.sh"
547582
fi
548583

549584
else
550-
# Any platform that is not coreultra
585+
# Any platform that is not NPU-capable
551586
echo ""
552587
echo "========================================================================"
553588
echo "# STANDARD INTEL PLATFORM INSTALLATION"
554589
echo "========================================================================"
555590
echo "Platform: $CPU_MODEL (Xeon/Atom/Core)"
556591
echo "Components: GPU Drivers (if GPU present) + OpenVINO"
557-
echo "NPU Support: Not available (Core Ultra only)"
592+
echo "NPU Support: Not available on this platform"
558593
echo ""
559594

560595
# Install GPU drivers (will check for GPU presence). Any failure will exit.

0 commit comments

Comments
 (0)