-
Notifications
You must be signed in to change notification settings - Fork 20
142 lines (119 loc) · 4.03 KB
/
windows-trt.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
name: Build (Windows-TRT)
on:
push:
paths:
- 'vstrt/**'
- '.github/workflows/windows-trt.yml'
workflow_call:
inputs:
tag:
description: 'which tag to upload to'
required: true
type: string
secrets:
REPO_TOKEN:
required: true
workflow_dispatch:
inputs:
tag:
description: 'which tag to upload to'
default: ''
jobs:
build-windows:
runs-on: windows-2022
defaults:
run:
shell: cmd
working-directory: vstrt
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Setup Ninja
run: pip install ninja
- name: Cache CUDA
id: cache-cuda
uses: actions/cache@v3
with:
path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
key: ${{ runner.os }}-vstrt-cuda-12.1.1
- name: Setup CUDA
if: steps.cache-cuda.outputs.cache-hit != 'true'
run: |
curl -s -o cuda_installer.exe -L https://developer.download.nvidia.com/compute/cuda/12.1.1/network_installers/cuda_12.1.1_windows_network.exe
cuda_installer.exe -s nvcc_12.1 cudart_12.1 nvprof_12.1 cuda_profiler_api_12.1 thrust_12.1
- name: Checkout tensorrt
uses: actions/checkout@v3
with:
repository: AmusementClub/cuda
token: ${{ secrets.REPO_TOKEN }}
ref: tensorrt-8.6.1
path: tensorrt
- name: Download VapourSynth headers
run: |
curl -s -o vs.zip -L https://github.com/vapoursynth/vapoursynth/archive/refs/tags/R54.zip
unzip -q vs.zip
mv vapoursynth-*/ vapoursynth/
- name: Configure
run: cmake -S . -B build -G Ninja -LA
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
-D CUDAToolkit_ROOT="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1"
-D VAPOURSYNTH_INCLUDE_DIRECTORY="%cd%\vapoursynth\include"
-D TENSORRT_HOME="%cd%\..\tensorrt\tensorrt"
-D USE_NVINFER_PLUGIN=ON
- name: Build
run: cmake --build build --config Release --verbose
- name: Install
run: cmake --install build --prefix install
- name: Checkout TensorRT OSS
uses: actions/checkout@v3
with:
repository: NVIDIA/TensorRT
ref: v8.6.1
fetch-depth: 1
path: tensorrt-oss
- name: Override trtexec CMake file
run: |
mv trtexec/CMakeLists.txt ../tensorrt-oss/samples/trtexec
mv trtexec/*.cpp ../tensorrt-oss/samples/trtexec
- name: Configure trtexec
run: cmake -S ../tensorrt-oss/samples/trtexec -B build_trtexec -G Ninja
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
-D CUDAToolkit_ROOT="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1"
-D TENSORRT_HOME="%cd%\..\tensorrt\tensorrt"
- name: Build trtexec
run: cmake --build build_trtexec --verbose
- name: Install trtexec
run: cmake --install build_trtexec --prefix trtexec
- name: Prepare for upload
run: |
mkdir artifact
copy install\bin\vstrt.dll artifact\
mkdir artifact\vsmlrt-cuda
copy trtexec\bin\trtexec.exe artifact\vsmlrt-cuda
- name: Describe
run: git describe --tags --long
- name: Upload
uses: actions/upload-artifact@v3
with:
name: VSTRT-Windows-x64
path: vstrt/artifact
- name: Compress artifact for release
if: github.event_name == 'workflow_dispatch' && github.event.inputs.tag != ''
run: |
cd artifact
7z a -t7z -mx=7 ../../VSTRT-Windows-x64.${{ github.event.inputs.tag }}.7z .
- name: Release
uses: softprops/action-gh-release@v1
if: github.event_name == 'workflow_dispatch' && github.event.inputs.tag != ''
with:
tag_name: ${{ inputs.tag }}
files: VSTRT-Windows-x64.${{ github.event.inputs.tag }}.7z
fail_on_unmatched_files: true
generate_release_notes: false
prerelease: true