Wideband autonomous SDR analysis engine forked from sdr-visual-suite
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

41 行
1.6KB

  1. $ErrorActionPreference = 'Stop'
  2. $vcvars = 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat'
  3. $cudaRoot = 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.2'
  4. $nvcc = Join-Path $cudaRoot 'bin\nvcc.exe'
  5. $src = Join-Path $PSScriptRoot 'internal\demod\gpudemod\native\exports.cu'
  6. $outDir = Join-Path $PSScriptRoot 'internal\demod\gpudemod\build'
  7. $dll = Join-Path $outDir 'gpudemod_kernels.dll'
  8. $lib = Join-Path $outDir 'gpudemod_kernels.lib'
  9. $exp = Join-Path $outDir 'gpudemod_kernels.exp'
  10. if (!(Test-Path $vcvars)) { throw "vcvars64.bat not found at $vcvars" }
  11. if (!(Test-Path $nvcc)) { throw "nvcc.exe not found at $nvcc" }
  12. if (!(Test-Path $src)) { throw "CUDA source not found at $src" }
  13. if (!(Test-Path $outDir)) { New-Item -ItemType Directory -Path $outDir | Out-Null }
  14. Remove-Item $dll,$lib,$exp -Force -ErrorAction SilentlyContinue
  15. $bat = Join-Path $env:TEMP 'build-gpudemod-dll.bat'
  16. $batContent = @"
  17. @echo off
  18. call "$vcvars"
  19. if errorlevel 1 exit /b %errorlevel%
  20. "$nvcc" -shared "$src" -o "$dll" -cudart=hybrid -Xcompiler "/MD" -arch=sm_75 ^
  21. -gencode arch=compute_75,code=sm_75 ^
  22. -gencode arch=compute_80,code=sm_80 ^
  23. -gencode arch=compute_86,code=sm_86 ^
  24. -gencode arch=compute_89,code=sm_89 ^
  25. -gencode arch=compute_90,code=sm_90
  26. exit /b %errorlevel%
  27. "@
  28. Set-Content -Path $bat -Value $batContent -Encoding ASCII
  29. Write-Host 'Building gpudemod CUDA DLL...' -ForegroundColor Cyan
  30. cmd.exe /c ""$bat""
  31. $exitCode = $LASTEXITCODE
  32. Remove-Item $bat -Force -ErrorAction SilentlyContinue
  33. if ($exitCode -ne 0) { throw 'gpudemod DLL build failed' }
  34. Write-Host "Built: $dll" -ForegroundColor Green