1 /* Copyright 2009-2012 NVIDIA Corporation. All rights reserved.
5 * The source code and/or documentation ("Licensed Deliverables") are
6 * subject to NVIDIA intellectual property rights under U.S. and
7 * international Copyright laws.
9 * The Licensed Deliverables contained herein are PROPRIETARY and
10 * CONFIDENTIAL to NVIDIA and are being provided under the terms and
11 * conditions of a form of NVIDIA software license agreement by and
12 * between NVIDIA and Licensee ("License Agreement") or electronically
13 * accepted by Licensee. Notwithstanding any terms or conditions to
14 * the contrary in the License Agreement, reproduction or disclosure
15 * of the Licensed Deliverables to any third party without the express
16 * written consent of NVIDIA is prohibited.
18 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
19 * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
20 * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE
21 * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
22 * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
23 * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
24 * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
25 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
26 * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
27 * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
28 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
29 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
30 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
31 * OF THESE LICENSED DELIVERABLES.
33 * U.S. Government End Users. These Licensed Deliverables are a
34 * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
35 * 1995), consisting of "commercial computer software" and "commercial
36 * computer software documentation" as such terms are used in 48
37 * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government
38 * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
39 * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
40 * U.S. Government End Users acquire the Licensed Deliverables with
41 * only those rights set forth herein.
43 * Any use of the Licensed Deliverables in individual and commercial
44 * software must include, in the user documentation and internal
45 * comments to the code, the above Disclaimer and U.S. Government End
51 #include <cuda_runtime_api.h>
55 * Basic NPP functionality.
56 * This file contains functions to query the NPP version as well as
57 * info about the CUDA compute capabilities on a given computer.
66 /** \defgroup core_npp NPP Core
67 * Basic functions for library management, in particular library version
68 * and device property query functions.
73 * Get the NPP library version.
75 * \return A struct containing separate values for major and minor revision
78 const NppLibraryVersion *
79 nppGetLibVersion(void);
82 * What CUDA compute model is supported by the active CUDA device?
84 * Before trying to call any NPP functions, the user should make a call
85 * this function to ensure that the current machine has a CUDA capable device.
87 * \return An enum value representing if a CUDA capable device was found and what
88 * level of compute capabilities it supports.
90 NppGpuComputeCapability
91 nppGetGpuComputeCapability(void);
94 * Get the number of Streaming Multiprocessors (SM) on the active CUDA device.
96 * \return Number of SMs of the default CUDA device.
99 nppGetGpuNumSMs(void);
102 * Get the maximum number of threads per block on the active CUDA device.
104 * \return Maximum number of threads per block on the active CUDA device.
107 nppGetMaxThreadsPerBlock(void);
110 * Get the maximum number of threads per SM for the active GPU
112 * \return Maximum number of threads per SM for the active GPU
115 nppGetMaxThreadsPerSM(void);
118 * Get the name of the active CUDA device.
120 * \return Name string of the active graphics-card/compute device in a system.
126 * Get the NPP CUDA stream.
127 * NPP enables concurrent device tasks via a global stream state varible.
128 * The NPP stream by default is set to stream 0, i.e. non-concurrent mode.
129 * A user can set the NPP stream to any valid CUDA stream. All CUDA commands
130 * issued by NPP (e.g. kernels launched by the NPP library) are then
131 * issed to that NPP stream.
137 * Set the NPP CUDA stream.
138 * \see nppGetStream()
141 nppSetStream(cudaStream_t hStream);
144 /** @} Module LabelCoreNPP */
151 #endif /* NV_NPPCORE_H */