node-gpuinfo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +336 -0
  3. package/binding.gyp +69 -0
  4. package/build/Release/gpu.exp +0 -0
  5. package/build/Release/gpu.lib +0 -0
  6. package/build/Release/gpu.node +0 -0
  7. package/build/Release/gpu.pdb +0 -0
  8. package/build/binding.sln +19 -0
  9. package/build/gpu.vcxproj +175 -0
  10. package/build/gpu.vcxproj.filters +169 -0
  11. package/example.js +69 -0
  12. package/index.js +33 -0
  13. package/package.json +68 -0
  14. package/src/binding.cpp +201 -0
  15. package/src/gpu_info.c +130 -0
  16. package/src/gpu_info.h +86 -0
  17. package/src/includes/adlx/ADLX.h +367 -0
  18. package/src/includes/adlx/ADLXDefines.h +1345 -0
  19. package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
  20. package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
  21. package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
  22. package/src/includes/adlx/ADLXStructures.h +206 -0
  23. package/src/includes/adlx/ADLXVersion.h +18 -0
  24. package/src/includes/adlx/I3DSettings.h +3476 -0
  25. package/src/includes/adlx/I3DSettings1.h +292 -0
  26. package/src/includes/adlx/I3DSettings2.h +317 -0
  27. package/src/includes/adlx/IApplications.h +397 -0
  28. package/src/includes/adlx/IChangedEvent.h +71 -0
  29. package/src/includes/adlx/ICollections.h +325 -0
  30. package/src/includes/adlx/IDesktops.h +918 -0
  31. package/src/includes/adlx/IDisplay3DLUT.h +663 -0
  32. package/src/includes/adlx/IDisplayGamma.h +683 -0
  33. package/src/includes/adlx/IDisplayGamut.h +760 -0
  34. package/src/includes/adlx/IDisplaySettings.h +3476 -0
  35. package/src/includes/adlx/IDisplays.h +2676 -0
  36. package/src/includes/adlx/IDisplays1.h +191 -0
  37. package/src/includes/adlx/IDisplays2.h +188 -0
  38. package/src/includes/adlx/IDisplays3.h +256 -0
  39. package/src/includes/adlx/IGPUAutoTuning.h +460 -0
  40. package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
  41. package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
  42. package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
  43. package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
  44. package/src/includes/adlx/IGPUPresetTuning.h +469 -0
  45. package/src/includes/adlx/IGPUTuning.h +1239 -0
  46. package/src/includes/adlx/IGPUTuning1.h +197 -0
  47. package/src/includes/adlx/II2C.h +198 -0
  48. package/src/includes/adlx/ILog.h +72 -0
  49. package/src/includes/adlx/IMultiMedia.h +578 -0
  50. package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
  51. package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
  52. package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
  53. package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
  54. package/src/includes/adlx/IPowerTuning.h +473 -0
  55. package/src/includes/adlx/IPowerTuning1.h +515 -0
  56. package/src/includes/adlx/ISmartAccessMemory.h +114 -0
  57. package/src/includes/adlx/ISystem.h +1557 -0
  58. package/src/includes/adlx/ISystem1.h +237 -0
  59. package/src/includes/adlx/ISystem2.h +643 -0
  60. package/src/linux/amd_linux.c +269 -0
  61. package/src/linux/intel_linux.c +20 -0
  62. package/src/linux/nvidia_linux.c +257 -0
  63. package/src/macos/amd_mac.c +131 -0
  64. package/src/macos/intel_mac.c +131 -0
  65. package/src/macos/nvidia_mac.c +21 -0
  66. package/src/vendor/amd.c +37 -0
  67. package/src/vendor/intel.c +37 -0
  68. package/src/vendor/nvidia.c +37 -0
  69. package/src/windows/amd_windows.c +468 -0
  70. package/src/windows/intel_windows.c +157 -0
  71. package/src/windows/nvidia_windows.c +252 -0
package/README.md ADDED
@@ -0,0 +1,336 @@
1
+ # node-gpuinfo
2
+
3
+ Cross-platform Node.js native addon for reading GPU (Graphics Processing Unit) information from NVIDIA, AMD, and Intel graphics cards.
4
+
5
+ ## Features
6
+
7
+ - 🎮 Multi-vendor GPU support (NVIDIA, AMD, Intel)
8
+ - 🖥️ Cross-platform support (Windows, macOS, Linux)
9
+ - ⚡ Fast native C implementation
10
+ - 📊 Comprehensive GPU metrics (temperature, utilization, memory, clocks, etc.)
11
+ - 📦 Easy to use Node.js API
12
+ - 🔒 No external dependencies (besides node-gyp for building)
13
+ - 🌍 Community-driven open source project
14
+
15
+ ## Implementation Status
16
+
17
+ ### Windows
18
+ - ✅ **NVIDIA**: Full support via NVML (all metrics available)
19
+ - ✅ **AMD**: Full support via ADLX (all metrics available)
20
+ - ✅ **Intel**: Basic support via Windows APIs (name, memory)
21
+
22
+ ### Linux
23
+ - ✅ **NVIDIA**: Full support via NVML (all metrics available)
24
+ - ⚠️ **AMD**: Basic detection (placeholder metrics - **needs implementation**)
25
+ - ⚠️ **Intel**: Placeholder only - **needs implementation**
26
+
27
+ ### macOS
28
+ - ❌ **NVIDIA**: Not supported (Apple dropped NVIDIA support after High Sierra)
29
+ - ⚠️ **AMD**: Basic detection via IOKit (placeholder metrics - **needs implementation**)
30
+ - ⚠️ **Intel**: Basic detection via IOKit (placeholder metrics - **needs implementation**)
31
+
32
+ **Note:** Items marked with ⚠️ return placeholder values. Real implementations need access to vendor-specific APIs or kernel interfaces. Contributions welcome!
33
+
34
+ ## Installation
35
+
36
+ ```bash
37
+ npm install
38
+ ```
39
+
40
+ This will automatically compile the native addon for your platform.
41
+
42
+ ## Usage
43
+
44
+ ```javascript
45
+ const gpu = require('node-gpuinfo');
46
+
47
+ // Get number of GPUs
48
+ const gpuCount = gpu.getGpuCount();
49
+ console.log('Number of GPUs:', gpuCount);
50
+
51
+ // Get information for first GPU
52
+ const gpuInfo = gpu.getGpuInfo(0);
53
+ console.log('GPU Name:', gpuInfo.name);
54
+ console.log('Vendor:', gpuInfo.vendor);
55
+ console.log('Memory Total:', gpuInfo.memoryTotal, 'MB');
56
+ console.log('GPU Utilization:', gpuInfo.gpuUtilization, '%');
57
+ console.log('Temperature:', gpuInfo.temperature, '°C');
58
+ console.log('Power Usage:', gpuInfo.powerUsage, 'W');
59
+
60
+ // Get all GPU information at once
61
+ const allGpus = gpu.getAllGpuInfo();
62
+ allGpus.forEach((gpu, index) => {
63
+ console.log(`GPU ${index}:`, gpu.name, `(${gpu.vendor})`);
64
+ });
65
+ ```
66
+
67
+ ## API
68
+
69
+ ### `getGpuCount()`
70
+ Returns the number of GPUs detected in the system.
71
+
72
+ **Returns:** `number`
73
+
74
+ ### `getGpuInfo(index)`
75
+ Gets detailed information about a specific GPU.
76
+
77
+ **Parameters:**
78
+ - `index` (number): Zero-based GPU index
79
+
80
+ **Returns:** Object with the following properties:
81
+ - `index` (number): GPU index
82
+ - `vendor` (string): GPU vendor (NVIDIA, AMD, Intel, or Unknown)
83
+ - `name` (string): GPU model name
84
+ - `uuid` (string): GPU unique identifier
85
+ - `pciBusId` (string): PCI bus ID
86
+ - `memoryTotal` (number): Total memory in MB
87
+ - `memoryUsed` (number): Used memory in MB
88
+ - `memoryFree` (number): Free memory in MB
89
+ - `gpuUtilization` (number): GPU utilization percentage (0-100)
90
+ - `memoryUtilization` (number): Memory utilization percentage (0-100)
91
+ - `temperature` (number): GPU temperature in Celsius
92
+ - `powerUsage` (number): Power usage in Watts
93
+ - `coreClock` (number): Core clock speed in MHz
94
+ - `memoryClock` (number): Memory clock speed in MHz
95
+ - `fanSpeed` (number): Fan speed percentage (0-100)
96
+
97
+ ### `getAllGpuInfo()`
98
+ Gets information about all GPUs in the system.
99
+
100
+ **Returns:** Array of GPU info objects
101
+
102
+ ### `initialize()`
103
+ Manually initialize the GPU library (automatically called on module load).
104
+
105
+ ### `cleanup()`
106
+ Cleanup GPU library resources.
107
+
108
+ ## Supported Information
109
+
110
+ - GPU vendor and model name
111
+ - Memory usage (total, used, free)
112
+ - GPU and memory utilization
113
+ - Temperature monitoring
114
+ - Power consumption
115
+ - Clock speeds (core and memory)
116
+ - Fan speed
117
+ - PCI bus information
118
+ - GPU UUID
119
+
120
+ ## Platform-Specific Notes
121
+
122
+ ### Windows
123
+ - NVIDIA: Uses NVML (NVIDIA Management Library)
124
+ - AMD: Uses ADL (AMD Display Library) and ADLX
125
+ - Intel: Uses Windows APIs
126
+ - Some information may require administrator privileges
127
+
128
+ ### macOS
129
+ - Uses Metal framework and IOKit
130
+ - NVIDIA GPUs may have limited support on recent macOS versions
131
+
132
+ ### Linux
133
+ - NVIDIA: Requires NVIDIA drivers with NVML support
134
+ - AMD: Uses sysfs and AMD driver APIs
135
+ - Intel: Uses sysfs and i915 driver information
136
+ - May require appropriate permissions for some metrics
137
+
138
+ ## Building from Source
139
+
140
+ ### Prerequisites
141
+
142
+ #### All Platforms
143
+ - **Node.js** >= 16.0.0
144
+ - **Python** 3.x (for node-gyp)
145
+ - **node-gyp** build tools
146
+
147
+ #### Windows
148
+ - **Visual Studio 2017 or later** (with C++ build tools)
149
+ - Install via Visual Studio Installer with "Desktop development with C++" workload
150
+ - Or install standalone: `npm install --global windows-build-tools`
151
+ - **Windows SDK** (usually included with Visual Studio)
152
+
153
+ #### macOS
154
+ - **Xcode Command Line Tools**
155
+ ```bash
156
+ xcode-select --install
157
+ ```
158
+ - **macOS SDK** (included with Xcode)
159
+
160
+ #### Linux
161
+ - **GCC or Clang** compiler
162
+ ```bash
163
+ # Ubuntu/Debian
164
+ sudo apt-get install build-essential
165
+
166
+ # Fedora/RHEL
167
+ sudo dnf groupinstall "Development Tools"
168
+
169
+ # Arch
170
+ sudo pacman -S base-devel
171
+ ```
172
+
173
+ ### GPU Driver Requirements
174
+
175
+ For the addon to retrieve GPU information, appropriate drivers must be installed:
176
+
177
+ #### NVIDIA GPUs
178
+ - **Windows/Linux**: NVIDIA GeForce or CUDA drivers
179
+ - Download from: https://www.nvidia.com/download/index.aspx
180
+ - Includes NVML (NVIDIA Management Library)
181
+ - **macOS**: Limited support (NVIDIA dropped macOS support after High Sierra)
182
+
183
+ #### AMD GPUs
184
+ - **Windows**: AMD Adrenalin drivers
185
+ - Download from: https://www.amd.com/en/support
186
+ - Includes ADLX SDK support (used by this addon)
187
+ - **Linux**: Mesa drivers or AMD proprietary drivers (AMDGPU-PRO)
188
+ ```bash
189
+ # Ubuntu/Debian
190
+ sudo apt-get install mesa-utils
191
+ ```
192
+ - **macOS**: Built-in AMD drivers (Metal framework)
193
+
194
+ #### Intel GPUs
195
+ - **Windows**: Intel Graphics drivers
196
+ - Download from: https://www.intel.com/content/www/us/en/download-center/home.html
197
+ - **Linux**: Mesa drivers (usually pre-installed)
198
+ - **macOS**: Built-in Intel drivers
199
+
200
+ ### Build Commands
201
+
202
+ ```bash
203
+ # Install dependencies and build
204
+ npm install
205
+
206
+ # Or build manually
207
+ npm run build
208
+
209
+ # Clean build artifacts
210
+ npm run clean
211
+
212
+ # Test the addon
213
+ npm test
214
+ ```
215
+
216
+ ### Build Process
217
+
218
+ The build process:
219
+ 1. Downloads and configures `node-addon-api` headers
220
+ 2. Compiles C/C++ source files using node-gyp
221
+ 3. Links against platform-specific libraries:
222
+ - **Windows**: `dxgi.lib`, `dxguid.lib`, `setupapi.lib`
223
+ - **macOS**: `IOKit`, `CoreFoundation`, `Metal` frameworks
224
+ - **Linux**: Standard system libraries
225
+
226
+ ### Troubleshooting Build Issues
227
+
228
+ #### Windows
229
+ - **Error: Cannot find Python**: Install Python 3.x and add to PATH
230
+ - **Error: Cannot find Visual Studio**: Run `npm install --global windows-build-tools`
231
+ - **Missing Windows SDK**: Install via Visual Studio Installer
232
+
233
+ #### macOS
234
+ - **Missing Xcode tools**: Run `xcode-select --install`
235
+ - **Permission denied**: Try `sudo npm install` (not recommended) or fix npm permissions
236
+
237
+ #### Linux
238
+ - **Missing compiler**: Install build-essential or equivalent
239
+ - **Missing headers**: Install `linux-headers-$(uname -r)`
240
+
241
+ ### Development Build
242
+
243
+ For development with debug symbols:
244
+ ```bash
245
+ npm run build -- --debug
246
+ ```
247
+
248
+ ## Requirements
249
+
250
+ - Node.js >= 16.0.0
251
+ - C++11 compatible compiler
252
+ - Python (for node-gyp)
253
+ - GPU drivers installed (see GPU Driver Requirements above)
254
+
255
+ ## Third-Party Components
256
+
257
+ This project uses the following third-party components:
258
+
259
+ - **ADLX (AMD Display Library eXtension)** - Copyright © 2021-2025 Advanced Micro Devices, Inc.
260
+ - Located in: `src/includes/adlx/`
261
+ - Used for AMD GPU monitoring on Windows
262
+ - License: Proprietary (All rights reserved)
263
+ - Note: ADLX headers are used under AMD's SDK license for interfacing with AMD drivers
264
+
265
+ The main project code (excluding third-party components) is licensed under GPL-3.0.
266
+
267
+ ## Contributing
268
+
269
+ We welcome contributions! This is a community-driven project and there are many areas where help is needed:
270
+
271
+ ### Priority Areas for Contribution
272
+
273
+ 1. **Linux AMD Support**
274
+ - Implement real metrics using sysfs (`/sys/class/drm/`)
275
+ - Add support for AMD ROCm libraries
276
+ - Read from `/sys/kernel/debug/dri/` for detailed info
277
+
278
+ 2. **Linux Intel Support**
279
+ - Implement i915 driver integration
280
+ - Use sysfs for temperature and frequency
281
+ - Add support for Intel GPU tools
282
+
283
+ 3. **macOS AMD/Intel Support**
284
+ - Explore Metal Performance Shaders for metrics
285
+ - Investigate IOAccelerator framework
286
+ - Add powermetrics parsing for GPU utilization
287
+
288
+ 4. **Additional Features**
289
+ - Per-process GPU usage
290
+ - GPU memory allocation details
291
+ - Multi-GPU affinity information
292
+ - Historical metrics/monitoring
293
+
294
+ 5. **Documentation**
295
+ - Add more usage examples
296
+ - Create API documentation
297
+ - Platform-specific notes and limitations
298
+
299
+ ### How to Contribute
300
+
301
+ 1. **Fork the repository**
302
+ 2. **Create a feature branch**: `git checkout -b feature/your-feature-name`
303
+ 3. **Make your changes** and test on your platform
304
+ 4. **Follow the existing code style**
305
+ 5. **Add tests** if applicable
306
+ 6. **Submit a pull request** with a clear description
307
+
308
+ ### Development Guidelines
309
+
310
+ - Test on your target platform(s) before submitting
311
+ - Keep platform-specific code in separate files (`*_windows.c`, `*_linux.c`, `*_mac.c`)
312
+ - Update the README with any new features or changes
313
+ - Follow C naming conventions (snake_case for functions/variables)
314
+ - Add comments explaining complex logic
315
+
316
+ ### Testing
317
+
318
+ Before submitting a PR, ensure:
319
+ ```bash
320
+ npm install
321
+ npm test
322
+ ```
323
+
324
+ Runs without errors on your platform.
325
+
326
+ ### Questions or Ideas?
327
+
328
+ - Open an [issue](https://github.com/oxmc/node-gpu/issues) for bugs or feature requests
329
+ - Start a [discussion](https://github.com/oxmc/node-gpu/discussions) for questions or ideas
330
+ - Check existing issues before creating duplicates
331
+
332
+ ## License
333
+
334
+ GPL-3.0-only
335
+
336
+ **Note:** The ADLX SDK components in `src/includes/adlx/` are proprietary and copyrighted by Advanced Micro Devices, Inc. These components are used to interface with AMD's graphics drivers and are not covered by the GPL-3.0 license.
package/binding.gyp ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "targets": [
3
+ {
4
+ "target_name": "gpu",
5
+ "cflags!": [ "-fno-exceptions" ],
6
+ "cflags_cc!": [ "-fno-exceptions" ],
7
+ "sources": [
8
+ "src/binding.cpp",
9
+ "src/gpu_info.c",
10
+ "src/vendor/nvidia.c",
11
+ "src/vendor/amd.c",
12
+ "src/vendor/intel.c"
13
+ ],
14
+ "include_dirs": [
15
+ "<!@(node -p \"require('node-addon-api').include\")",
16
+ "src",
17
+ "src/includes"
18
+ ],
19
+ "defines": [ "NAPI_DISABLE_CPP_EXCEPTIONS" ],
20
+ "conditions": [
21
+ ["OS=='win'", {
22
+ "sources": [
23
+ "src/windows/nvidia_windows.c",
24
+ "src/windows/amd_windows.c",
25
+ "src/windows/intel_windows.c",
26
+ "src/includes/adlx/ADLXHelper/ADLXHelper.c",
27
+ "src/includes/adlx/ADLXHelper/WinAPIS.c"
28
+ ],
29
+ "libraries": [
30
+ "dxgi.lib",
31
+ "dxguid.lib",
32
+ "setupapi.lib"
33
+ ],
34
+ "msvs_settings": {
35
+ "VCCLCompilerTool": {
36
+ "ExceptionHandling": 1
37
+ }
38
+ }
39
+ }],
40
+ ["OS=='mac'", {
41
+ "sources": [
42
+ "src/macos/nvidia_mac.c",
43
+ "src/macos/amd_mac.c",
44
+ "src/macos/intel_mac.c"
45
+ ],
46
+ "xcode_settings": {
47
+ "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
48
+ "CLANG_CXX_LIBRARY": "libc++",
49
+ "MACOSX_DEPLOYMENT_TARGET": "10.13"
50
+ },
51
+ "link_settings": {
52
+ "libraries": [
53
+ "-framework IOKit",
54
+ "-framework CoreFoundation",
55
+ "-framework Metal"
56
+ ]
57
+ }
58
+ }],
59
+ ["OS=='linux'", {
60
+ "sources": [
61
+ "src/linux/nvidia_linux.c",
62
+ "src/linux/amd_linux.c",
63
+ "src/linux/intel_linux.c"
64
+ ]
65
+ }]
66
+ ]
67
+ }
68
+ ]
69
+ }
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,19 @@
1
+ Microsoft Visual Studio Solution File, Format Version 12.00
2
+ # Visual Studio 2015
3
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpu", "gpu.vcxproj", "{A6E42D61-C616-4A34-B417-CE382FC63645}"
4
+ EndProject
5
+ Global
6
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
7
+ Release|x64 = Release|x64
8
+ Debug|x64 = Debug|x64
9
+ EndGlobalSection
10
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
11
+ {A6E42D61-C616-4A34-B417-CE382FC63645}.Release|x64.ActiveCfg = Release|x64
12
+ {A6E42D61-C616-4A34-B417-CE382FC63645}.Release|x64.Build.0 = Release|x64
13
+ {A6E42D61-C616-4A34-B417-CE382FC63645}.Debug|x64.ActiveCfg = Debug|x64
14
+ {A6E42D61-C616-4A34-B417-CE382FC63645}.Debug|x64.Build.0 = Debug|x64
15
+ EndGlobalSection
16
+ GlobalSection(SolutionProperties) = preSolution
17
+ HideSolutionNode = FALSE
18
+ EndGlobalSection
19
+ EndGlobal
@@ -0,0 +1,175 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|x64">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>x64</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Release|x64">
9
+ <Configuration>Release</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
12
+ </ItemGroup>
13
+ <PropertyGroup Label="Globals">
14
+ <ProjectGuid>{A6E42D61-C616-4A34-B417-CE382FC63645}</ProjectGuid>
15
+ <Keyword>Win32Proj</Keyword>
16
+ <RootNamespace>gpu</RootNamespace>
17
+ <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
18
+ <PreferredToolArchitecture>x64</PreferredToolArchitecture>
19
+ <WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
20
+ </PropertyGroup>
21
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
22
+ <PropertyGroup Label="Configuration">
23
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
24
+ </PropertyGroup>
25
+ <PropertyGroup Label="Locals">
26
+ <PlatformToolset>v143</PlatformToolset>
27
+ </PropertyGroup>
28
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
29
+ <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props"/>
30
+ <ImportGroup Label="ExtensionSettings"/>
31
+ <ImportGroup Label="PropertySheets">
32
+ <Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/>
33
+ </ImportGroup>
34
+ <PropertyGroup Label="UserMacros"/>
35
+ <PropertyGroup>
36
+ <ExecutablePath>$(ExecutablePath);$(MSBuildProjectDirectory)\..\bin\;$(MSBuildProjectDirectory)\..\bin\</ExecutablePath>
37
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
38
+ <IntDir>$(Configuration)\obj\$(ProjectName)\</IntDir>
39
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
40
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
41
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
42
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.node</TargetExt>
43
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.node</TargetExt>
44
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.node</TargetExt>
45
+ <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.node</TargetExt>
46
+ <TargetName>$(ProjectName)</TargetName>
47
+ <TargetPath>$(OutDir)\$(ProjectName).node</TargetPath>
48
+ </PropertyGroup>
49
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
50
+ <ClCompile>
51
+ <AdditionalIncludeDirectories>C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\include\node;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\src;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\config;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\openssl\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\uv\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\zlib;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\v8\include;C:\Users\oxmc\Documents\Github\nodeGPU\node_modules\node-addon-api;..\src;..\src\includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
52
+ <AdditionalOptions>/Zc:__cplusplus -std:c++17 %(AdditionalOptions)</AdditionalOptions>
53
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
54
+ <BufferSecurityCheck>true</BufferSecurityCheck>
55
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
56
+ <DisableSpecificWarnings>4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
57
+ <ExceptionHandling>Sync</ExceptionHandling>
58
+ <MinimalRebuild>false</MinimalRebuild>
59
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
60
+ <OmitFramePointers>false</OmitFramePointers>
61
+ <Optimization>Disabled</Optimization>
62
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
63
+ <PreprocessorDefinitions>NODE_GYP_MODULE_NAME=gpu;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;NAPI_DISABLE_CPP_EXCEPTIONS;BUILDING_NODE_EXTENSION;HOST_BINARY=&quot;node.exe&quot;;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
64
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
65
+ <StringPooling>true</StringPooling>
66
+ <SuppressStartupBanner>true</SuppressStartupBanner>
67
+ <TreatWarningAsError>false</TreatWarningAsError>
68
+ <WarningLevel>Level3</WarningLevel>
69
+ <WholeProgramOptimization>true</WholeProgramOptimization>
70
+ </ClCompile>
71
+ <Lib>
72
+ <AdditionalOptions>/LTCG:INCREMENTAL %(AdditionalOptions)</AdditionalOptions>
73
+ </Lib>
74
+ <Link>
75
+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;DelayImp.lib;&quot;C:\\Users\\oxmc\\AppData\\Local\\node-gyp\\Cache\\20.17.0\\x64\\node.lib&quot;;dxgi.lib;dxguid.lib;setupapi.lib</AdditionalDependencies>
76
+ <AdditionalOptions>/LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions)</AdditionalOptions>
77
+ <DelayLoadDLLs>node.exe;%(DelayLoadDLLs)</DelayLoadDLLs>
78
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
79
+ <GenerateDebugInformation>true</GenerateDebugInformation>
80
+ <OptimizeReferences>true</OptimizeReferences>
81
+ <OutputFile>$(OutDir)$(ProjectName).node</OutputFile>
82
+ <SuppressStartupBanner>true</SuppressStartupBanner>
83
+ <TargetExt>.node</TargetExt>
84
+ <TargetMachine>MachineX64</TargetMachine>
85
+ </Link>
86
+ <ResourceCompile>
87
+ <AdditionalIncludeDirectories>C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\include\node;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\src;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\config;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\openssl\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\uv\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\zlib;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\v8\include;C:\Users\oxmc\Documents\Github\nodeGPU\node_modules\node-addon-api;..\src;..\src\includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
88
+ <PreprocessorDefinitions>NODE_GYP_MODULE_NAME=gpu;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;NAPI_DISABLE_CPP_EXCEPTIONS;BUILDING_NODE_EXTENSION;HOST_BINARY=&quot;node.exe&quot;;DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
89
+ </ResourceCompile>
90
+ </ItemDefinitionGroup>
91
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
92
+ <ClCompile>
93
+ <AdditionalIncludeDirectories>C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\include\node;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\src;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\config;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\openssl\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\uv\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\zlib;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\v8\include;C:\Users\oxmc\Documents\Github\nodeGPU\node_modules\node-addon-api;..\src;..\src\includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
94
+ <AdditionalOptions>/Zc:__cplusplus -std:c++17 %(AdditionalOptions)</AdditionalOptions>
95
+ <BufferSecurityCheck>true</BufferSecurityCheck>
96
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
97
+ <DisableSpecificWarnings>4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
98
+ <ExceptionHandling>Sync</ExceptionHandling>
99
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
100
+ <FunctionLevelLinking>true</FunctionLevelLinking>
101
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
102
+ <IntrinsicFunctions>true</IntrinsicFunctions>
103
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
104
+ <OmitFramePointers>true</OmitFramePointers>
105
+ <Optimization>Full</Optimization>
106
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
107
+ <PreprocessorDefinitions>NODE_GYP_MODULE_NAME=gpu;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;NAPI_DISABLE_CPP_EXCEPTIONS;BUILDING_NODE_EXTENSION;HOST_BINARY=&quot;node.exe&quot;;%(PreprocessorDefinitions)</PreprocessorDefinitions>
108
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
109
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
110
+ <StringPooling>true</StringPooling>
111
+ <SuppressStartupBanner>true</SuppressStartupBanner>
112
+ <TreatWarningAsError>false</TreatWarningAsError>
113
+ <WarningLevel>Level3</WarningLevel>
114
+ <WholeProgramOptimization>true</WholeProgramOptimization>
115
+ </ClCompile>
116
+ <Lib>
117
+ <AdditionalOptions>/LTCG:INCREMENTAL %(AdditionalOptions)</AdditionalOptions>
118
+ </Lib>
119
+ <Link>
120
+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;DelayImp.lib;&quot;C:\\Users\\oxmc\\AppData\\Local\\node-gyp\\Cache\\20.17.0\\x64\\node.lib&quot;;dxgi.lib;dxguid.lib;setupapi.lib</AdditionalDependencies>
121
+ <AdditionalOptions>/LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions)</AdditionalOptions>
122
+ <DelayLoadDLLs>node.exe;%(DelayLoadDLLs)</DelayLoadDLLs>
123
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
124
+ <GenerateDebugInformation>true</GenerateDebugInformation>
125
+ <OptimizeReferences>true</OptimizeReferences>
126
+ <OutputFile>$(OutDir)$(ProjectName).node</OutputFile>
127
+ <SuppressStartupBanner>true</SuppressStartupBanner>
128
+ <TargetExt>.node</TargetExt>
129
+ <TargetMachine>MachineX64</TargetMachine>
130
+ </Link>
131
+ <ResourceCompile>
132
+ <AdditionalIncludeDirectories>C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\include\node;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\src;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\config;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\openssl\openssl\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\uv\include;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\zlib;C:\Users\oxmc\AppData\Local\node-gyp\Cache\20.17.0\deps\v8\include;C:\Users\oxmc\Documents\Github\nodeGPU\node_modules\node-addon-api;..\src;..\src\includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
133
+ <PreprocessorDefinitions>NODE_GYP_MODULE_NAME=gpu;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;NAPI_DISABLE_CPP_EXCEPTIONS;BUILDING_NODE_EXTENSION;HOST_BINARY=&quot;node.exe&quot;;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
134
+ </ResourceCompile>
135
+ </ItemDefinitionGroup>
136
+ <ItemGroup>
137
+ <None Include="..\binding.gyp"/>
138
+ </ItemGroup>
139
+ <ItemGroup>
140
+ <ClCompile Include="..\src\binding.cpp">
141
+ <ObjectFileName>$(IntDir)\src\binding.obj</ObjectFileName>
142
+ </ClCompile>
143
+ <ClCompile Include="..\src\gpu_info.c">
144
+ <ObjectFileName>$(IntDir)\src\gpu_info.obj</ObjectFileName>
145
+ </ClCompile>
146
+ <ClCompile Include="..\src\vendor\nvidia.c">
147
+ <ObjectFileName>$(IntDir)\src\vendor\nvidia.obj</ObjectFileName>
148
+ </ClCompile>
149
+ <ClCompile Include="..\src\vendor\amd.c">
150
+ <ObjectFileName>$(IntDir)\src\vendor\amd.obj</ObjectFileName>
151
+ </ClCompile>
152
+ <ClCompile Include="..\src\vendor\intel.c">
153
+ <ObjectFileName>$(IntDir)\src\vendor\intel.obj</ObjectFileName>
154
+ </ClCompile>
155
+ <ClCompile Include="..\src\windows\nvidia_windows.c">
156
+ <ObjectFileName>$(IntDir)\src\windows\nvidia_windows.obj</ObjectFileName>
157
+ </ClCompile>
158
+ <ClCompile Include="..\src\windows\amd_windows.c">
159
+ <ObjectFileName>$(IntDir)\src\windows\amd_windows.obj</ObjectFileName>
160
+ </ClCompile>
161
+ <ClCompile Include="..\src\windows\intel_windows.c">
162
+ <ObjectFileName>$(IntDir)\src\windows\intel_windows.obj</ObjectFileName>
163
+ </ClCompile>
164
+ <ClCompile Include="..\src\includes\adlx\ADLXHelper\ADLXHelper.c">
165
+ <ObjectFileName>$(IntDir)\src\includes\adlx\ADLXHelper\ADLXHelper.obj</ObjectFileName>
166
+ </ClCompile>
167
+ <ClCompile Include="..\src\includes\adlx\ADLXHelper\WinAPIS.c">
168
+ <ObjectFileName>$(IntDir)\src\includes\adlx\ADLXHelper\WinAPIS.obj</ObjectFileName>
169
+ </ClCompile>
170
+ <ClCompile Include="C:\Users\oxmc\Documents\Github\nodeGPU\node_modules\node-gyp\src\win_delay_load_hook.cc"/>
171
+ </ItemGroup>
172
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
173
+ <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets"/>
174
+ <ImportGroup Label="ExtensionTargets"/>
175
+ </Project>