├── LICENSE
├── README.md
├── bin
└── x86_64_Linux
│ ├── LICENSE
│ └── cuda-checkpoint
├── images
├── app.png
├── copy-in.png
├── copy-out.png
├── lock.png
├── moon.png
├── off.png
├── on.png
├── proc.png
├── sun.png
├── unlock.png
└── vm.png
└── src
├── counter.cu
├── example.sh
└── r570-features.c
/LICENSE:
--------------------------------------------------------------------------------
1 | End User License Agreement
2 | --------------------------
3 |
4 | NVIDIA Software License Agreement and CUDA Supplement to
5 | Software License Agreement. Last updated: October 8, 2021
6 |
7 | The CUDA Toolkit End User License Agreement applies to the
8 | NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA
9 | Display Driver, NVIDIA Nsight tools (Visual Studio Edition),
10 | and the associated documentation on CUDA APIs, programming
11 | model and development tools. If you do not agree with the
12 | terms and conditions of the license agreement, then do not
13 | download or use the software.
14 |
15 | Last updated: October 8, 2021.
16 |
17 |
18 | Preface
19 | -------
20 |
21 | The Software License Agreement in Chapter 1 and the Supplement
22 | in Chapter 2 contain license terms and conditions that govern
23 | the use of NVIDIA software. By accepting this agreement, you
24 | agree to comply with all the terms and conditions applicable
25 | to the product(s) included herein.
26 |
27 |
28 | NVIDIA Driver
29 |
30 |
31 | Description
32 |
33 | This package contains the operating system driver and
34 | fundamental system software components for NVIDIA GPUs.
35 |
36 |
37 | NVIDIA CUDA Toolkit
38 |
39 |
40 | Description
41 |
42 | The NVIDIA CUDA Toolkit provides command-line and graphical
43 | tools for building, debugging and optimizing the performance
44 | of applications accelerated by NVIDIA GPUs, runtime and math
45 | libraries, and documentation including programming guides,
46 | user manuals, and API references.
47 |
48 |
49 | Default Install Location of CUDA Toolkit
50 |
51 | Windows platform:
52 |
53 | %ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v#.#
54 |
55 | Linux platform:
56 |
57 | /usr/local/cuda-#.#
58 |
59 | Mac platform:
60 |
61 | /Developer/NVIDIA/CUDA-#.#
62 |
63 |
64 | NVIDIA CUDA Samples
65 |
66 |
67 | Description
68 |
69 | CUDA Samples are now located in
70 | https://github.com/nvidia/cuda-samples, which includes
71 | instructions for obtaining, building, and running the samples.
72 | They are no longer included in the CUDA toolkit.
73 |
74 |
75 | NVIDIA Nsight Visual Studio Edition (Windows only)
76 |
77 |
78 | Description
79 |
80 | NVIDIA Nsight Development Platform, Visual Studio Edition is a
81 | development environment integrated into Microsoft Visual
82 | Studio that provides tools for debugging, profiling, analyzing
83 | and optimizing your GPU computing and graphics applications.
84 |
85 |
86 | Default Install Location of Nsight Visual Studio Edition
87 |
88 | Windows platform:
89 |
90 | %ProgramFiles(x86)%\NVIDIA Corporation\Nsight Visual Studio Edition #.#
91 |
92 |
93 | 1. License Agreement for NVIDIA Software Development Kits
94 | ---------------------------------------------------------
95 |
96 |
97 | Important Notice—Read before downloading, installing,
98 | copying or using the licensed software:
99 | -------------------------------------------------------
100 |
101 | This license agreement, including exhibits attached
102 | ("Agreement”) is a legal agreement between you and NVIDIA
103 | Corporation ("NVIDIA") and governs your use of a NVIDIA
104 | software development kit (“SDK”).
105 |
106 | Each SDK has its own set of software and materials, but here
107 | is a description of the types of items that may be included in
108 | a SDK: source code, header files, APIs, data sets and assets
109 | (examples include images, textures, models, scenes, videos,
110 | native API input/output files), binary software, sample code,
111 | libraries, utility programs, programming code and
112 | documentation.
113 |
114 | This Agreement can be accepted only by an adult of legal age
115 | of majority in the country in which the SDK is used.
116 |
117 | If you are entering into this Agreement on behalf of a company
118 | or other legal entity, you represent that you have the legal
119 | authority to bind the entity to this Agreement, in which case
120 | “you” will mean the entity you represent.
121 |
122 | If you don’t have the required age or authority to accept
123 | this Agreement, or if you don’t accept all the terms and
124 | conditions of this Agreement, do not download, install or use
125 | the SDK.
126 |
127 | You agree to use the SDK only for purposes that are permitted
128 | by (a) this Agreement, and (b) any applicable law, regulation
129 | or generally accepted practices or guidelines in the relevant
130 | jurisdictions.
131 |
132 |
133 | 1.1. License
134 |
135 |
136 | 1.1.1. License Grant
137 |
138 | Subject to the terms of this Agreement, NVIDIA hereby grants
139 | you a non-exclusive, non-transferable license, without the
140 | right to sublicense (except as expressly provided in this
141 | Agreement) to:
142 |
143 | 1. Install and use the SDK,
144 |
145 | 2. Modify and create derivative works of sample source code
146 | delivered in the SDK, and
147 |
148 | 3. Distribute those portions of the SDK that are identified
149 | in this Agreement as distributable, as incorporated in
150 | object code format into a software application that meets
151 | the distribution requirements indicated in this Agreement.
152 |
153 |
154 | 1.1.2. Distribution Requirements
155 |
156 | These are the distribution requirements for you to exercise
157 | the distribution grant:
158 |
159 | 1. Your application must have material additional
160 | functionality, beyond the included portions of the SDK.
161 |
162 | 2. The distributable portions of the SDK shall only be
163 | accessed by your application.
164 |
165 | 3. The following notice shall be included in modifications
166 | and derivative works of sample source code distributed:
167 | “This software contains source code provided by NVIDIA
168 | Corporation.”
169 |
170 | 4. Unless a developer tool is identified in this Agreement
171 | as distributable, it is delivered for your internal use
172 | only.
173 |
174 | 5. The terms under which you distribute your application
175 | must be consistent with the terms of this Agreement,
176 | including (without limitation) terms relating to the
177 | license grant and license restrictions and protection of
178 | NVIDIA’s intellectual property rights. Additionally, you
179 | agree that you will protect the privacy, security and
180 | legal rights of your application users.
181 |
182 | 6. You agree to notify NVIDIA in writing of any known or
183 | suspected distribution or use of the SDK not in compliance
184 | with the requirements of this Agreement, and to enforce
185 | the terms of your agreements with respect to distributed
186 | SDK.
187 |
188 |
189 | 1.1.3. Authorized Users
190 |
191 | You may allow employees and contractors of your entity or of
192 | your subsidiary(ies) to access and use the SDK from your
193 | secure network to perform work on your behalf.
194 |
195 | If you are an academic institution you may allow users
196 | enrolled or employed by the academic institution to access and
197 | use the SDK from your secure network.
198 |
199 | You are responsible for the compliance with the terms of this
200 | Agreement by your authorized users. If you become aware that
201 | your authorized users didn’t follow the terms of this
202 | Agreement, you agree to take reasonable steps to resolve the
203 | non-compliance and prevent new occurrences.
204 |
205 |
206 | 1.1.4. Pre-Release SDK
207 |
208 | The SDK versions identified as alpha, beta, preview or
209 | otherwise as pre-release, may not be fully functional, may
210 | contain errors or design flaws, and may have reduced or
211 | different security, privacy, accessibility, availability, and
212 | reliability standards relative to commercial versions of
213 | NVIDIA software and materials. Use of a pre-release SDK may
214 | result in unexpected results, loss of data, project delays or
215 | other unpredictable damage or loss.
216 |
217 | You may use a pre-release SDK at your own risk, understanding
218 | that pre-release SDKs are not intended for use in production
219 | or business-critical systems.
220 |
221 | NVIDIA may choose not to make available a commercial version
222 | of any pre-release SDK. NVIDIA may also choose to abandon
223 | development and terminate the availability of a pre-release
224 | SDK at any time without liability.
225 |
226 |
227 | 1.1.5. Updates
228 |
229 | NVIDIA may, at its option, make available patches, workarounds
230 | or other updates to this SDK. Unless the updates are provided
231 | with their separate governing terms, they are deemed part of
232 | the SDK licensed to you as provided in this Agreement. You
233 | agree that the form and content of the SDK that NVIDIA
234 | provides may change without prior notice to you. While NVIDIA
235 | generally maintains compatibility between versions, NVIDIA may
236 | in some cases make changes that introduce incompatibilities in
237 | future versions of the SDK.
238 |
239 |
240 | 1.1.6. Components Under Other Licenses
241 |
242 | The SDK may come bundled with, or otherwise include or be
243 | distributed with, NVIDIA or third-party components with
244 | separate legal notices or terms as may be described in
245 | proprietary notices accompanying the SDK. If and to the extent
246 | there is a conflict between the terms in this Agreement and
247 | the license terms associated with the component, the license
248 | terms associated with the components control only to the
249 | extent necessary to resolve the conflict.
250 |
251 | Subject to the other terms of this Agreement, you may use the
252 | SDK to develop and test applications released under Open
253 | Source Initiative (OSI) approved open source software
254 | licenses.
255 |
256 |
257 | 1.1.7. Reservation of Rights
258 |
259 | NVIDIA reserves all rights, title, and interest in and to the
260 | SDK, not expressly granted to you under this Agreement.
261 |
262 |
263 | 1.2. Limitations
264 |
265 | The following license limitations apply to your use of the
266 | SDK:
267 |
268 | 1. You may not reverse engineer, decompile or disassemble,
269 | or remove copyright or other proprietary notices from any
270 | portion of the SDK or copies of the SDK.
271 |
272 | 2. Except as expressly provided in this Agreement, you may
273 | not copy, sell, rent, sublicense, transfer, distribute,
274 | modify, or create derivative works of any portion of the
275 | SDK. For clarity, you may not distribute or sublicense the
276 | SDK as a stand-alone product.
277 |
278 | 3. Unless you have an agreement with NVIDIA for this
279 | purpose, you may not indicate that an application created
280 | with the SDK is sponsored or endorsed by NVIDIA.
281 |
282 | 4. You may not bypass, disable, or circumvent any
283 | encryption, security, digital rights management or
284 | authentication mechanism in the SDK.
285 |
286 | 5. You may not use the SDK in any manner that would cause it
287 | to become subject to an open source software license. As
288 | examples, licenses that require as a condition of use,
289 | modification, and/or distribution that the SDK be:
290 |
291 | a. Disclosed or distributed in source code form;
292 |
293 | b. Licensed for the purpose of making derivative works;
294 | or
295 |
296 | c. Redistributable at no charge.
297 |
298 | 6. You acknowledge that the SDK as delivered is not tested
299 | or certified by NVIDIA for use in connection with the
300 | design, construction, maintenance, and/or operation of any
301 | system where the use or failure of such system could
302 | result in a situation that threatens the safety of human
303 | life or results in catastrophic damages (each, a "Critical
304 | Application"). Examples of Critical Applications include
305 | use in avionics, navigation, autonomous vehicle
306 | applications, ai solutions for automotive products,
307 | military, medical, life support or other life critical
308 | applications. NVIDIA shall not be liable to you or any
309 | third party, in whole or in part, for any claims or
310 | damages arising from such uses. You are solely responsible
311 | for ensuring that any product or service developed with
312 | the SDK as a whole includes sufficient features to comply
313 | with all applicable legal and regulatory standards and
314 | requirements.
315 |
316 | 7. You agree to defend, indemnify and hold harmless NVIDIA
317 | and its affiliates, and their respective employees,
318 | contractors, agents, officers and directors, from and
319 | against any and all claims, damages, obligations, losses,
320 | liabilities, costs or debt, fines, restitutions and
321 | expenses (including but not limited to attorney’s fees
322 | and costs incident to establishing the right of
323 | indemnification) arising out of or related to products or
324 | services that use the SDK in or for Critical Applications,
325 | and for use of the SDK outside of the scope of this
326 | Agreement or not in compliance with its terms.
327 |
328 | 8. You may not reverse engineer, decompile or disassemble
329 | any portion of the output generated using SDK elements for
330 | the purpose of translating such output artifacts to target
331 | a non-NVIDIA platform.
332 |
333 |
334 | 1.3. Ownership
335 |
336 | 1. NVIDIA or its licensors hold all rights, title and
337 | interest in and to the SDK and its modifications and
338 | derivative works, including their respective intellectual
339 | property rights, subject to your rights under Section
340 | 1.3.2. This SDK may include software and materials from
341 | NVIDIA’s licensors, and these licensors are intended
342 | third party beneficiaries that may enforce this Agreement
343 | with respect to their intellectual property rights.
344 |
345 | 2. You hold all rights, title and interest in and to your
346 | applications and your derivative works of the sample
347 | source code delivered in the SDK, including their
348 | respective intellectual property rights, subject to
349 | NVIDIA’s rights under Section 1.3.1.
350 |
351 | 3. You may, but don’t have to, provide to NVIDIA
352 | suggestions, feature requests or other feedback regarding
353 | the SDK, including possible enhancements or modifications
354 | to the SDK. For any feedback that you voluntarily provide,
355 | you hereby grant NVIDIA and its affiliates a perpetual,
356 | non-exclusive, worldwide, irrevocable license to use,
357 | reproduce, modify, license, sublicense (through multiple
358 | tiers of sublicensees), and distribute (through multiple
359 | tiers of distributors) it without the payment of any
360 | royalties or fees to you. NVIDIA will use feedback at its
361 | choice. NVIDIA is constantly looking for ways to improve
362 | its products, so you may send feedback to NVIDIA through
363 | the developer portal at https://developer.nvidia.com.
364 |
365 |
366 | 1.4. No Warranties
367 |
368 | THE SDK IS PROVIDED BY NVIDIA “AS IS” AND “WITH ALL
369 | FAULTS.” TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND
370 | ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND
371 | OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,
372 | BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
373 | FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, OR THE
374 | ABSENCE OF ANY DEFECTS THEREIN, WHETHER LATENT OR PATENT. NO
375 | WARRANTY IS MADE ON THE BASIS OF TRADE USAGE, COURSE OF
376 | DEALING OR COURSE OF TRADE.
377 |
378 |
379 | 1.5. Limitation of Liability
380 |
381 | TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS
382 | AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
383 | PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, LOSS
384 | OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF
385 | PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION
386 | WITH THIS AGREEMENT OR THE USE OR PERFORMANCE OF THE SDK,
387 | WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH
388 | OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE),
389 | PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF
390 | LIABILITY. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES
391 | TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS
392 | AGREEMENT EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE
393 | NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS
394 | LIMIT.
395 |
396 | These exclusions and limitations of liability shall apply
397 | regardless if NVIDIA or its affiliates have been advised of
398 | the possibility of such damages, and regardless of whether a
399 | remedy fails its essential purpose. These exclusions and
400 | limitations of liability form an essential basis of the
401 | bargain between the parties, and, absent any of these
402 | exclusions or limitations of liability, the provisions of this
403 | Agreement, including, without limitation, the economic terms,
404 | would be substantially different.
405 |
406 |
407 | 1.6. Termination
408 |
409 | 1. This Agreement will continue to apply until terminated by
410 | either you or NVIDIA as described below.
411 |
412 | 2. If you want to terminate this Agreement, you may do so by
413 | stopping to use the SDK.
414 |
415 | 3. NVIDIA may, at any time, terminate this Agreement if:
416 |
417 | a. (i) you fail to comply with any term of this
418 | Agreement and the non-compliance is not fixed within
419 | thirty (30) days following notice from NVIDIA (or
420 | immediately if you violate NVIDIA’s intellectual
421 | property rights);
422 |
423 | b. (ii) you commence or participate in any legal
424 | proceeding against NVIDIA with respect to the SDK; or
425 |
426 | c. (iii) NVIDIA decides to no longer provide the SDK in
427 | a country or, in NVIDIA’s sole discretion, the
428 | continued use of it is no longer commercially viable.
429 |
430 | 4. Upon any termination of this Agreement, you agree to
431 | promptly discontinue use of the SDK and destroy all copies
432 | in your possession or control. Your prior distributions in
433 | accordance with this Agreement are not affected by the
434 | termination of this Agreement. Upon written request, you
435 | will certify in writing that you have complied with your
436 | commitments under this section. Upon any termination of
437 | this Agreement all provisions survive except for the
438 | license grant provisions.
439 |
440 |
441 | 1.7. General
442 |
443 | If you wish to assign this Agreement or your rights and
444 | obligations, including by merger, consolidation, dissolution
445 | or operation of law, contact NVIDIA to ask for permission. Any
446 | attempted assignment not approved by NVIDIA in writing shall
447 | be void and of no effect. NVIDIA may assign, delegate or
448 | transfer this Agreement and its rights and obligations, and if
449 | to a non-affiliate you will be notified.
450 |
451 | You agree to cooperate with NVIDIA and provide reasonably
452 | requested information to verify your compliance with this
453 | Agreement.
454 |
455 | This Agreement will be governed in all respects by the laws of
456 | the United States and of the State of Delaware as those laws
457 | are applied to contracts entered into and performed entirely
458 | within Delaware by Delaware residents, without regard to the
459 | conflicts of laws principles. The United Nations Convention on
460 | Contracts for the International Sale of Goods is specifically
461 | disclaimed. You agree to all terms of this Agreement in the
462 | English language.
463 |
464 | The state or federal courts residing in Santa Clara County,
465 | California shall have exclusive jurisdiction over any dispute
466 | or claim arising out of this Agreement. Notwithstanding this,
467 | you agree that NVIDIA shall still be allowed to apply for
468 | injunctive remedies or an equivalent type of urgent legal
469 | relief in any jurisdiction.
470 |
471 | If any court of competent jurisdiction determines that any
472 | provision of this Agreement is illegal, invalid or
473 | unenforceable, such provision will be construed as limited to
474 | the extent necessary to be consistent with and fully
475 | enforceable under the law and the remaining provisions will
476 | remain in full force and effect. Unless otherwise specified,
477 | remedies are cumulative.
478 |
479 | Each party acknowledges and agrees that the other is an
480 | independent contractor in the performance of this Agreement.
481 |
482 | The SDK has been developed entirely at private expense and is
483 | “commercial items” consisting of “commercial computer
484 | software” and “commercial computer software
485 | documentation” provided with RESTRICTED RIGHTS. Use,
486 | duplication or disclosure by the U.S. Government or a U.S.
487 | Government subcontractor is subject to the restrictions in
488 | this Agreement pursuant to DFARS 227.7202-3(a) or as set forth
489 | in subparagraphs (c)(1) and (2) of the Commercial Computer
490 | Software - Restricted Rights clause at FAR 52.227-19, as
491 | applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas
492 | Expressway, Santa Clara, CA 95051.
493 |
494 | The SDK is subject to United States export laws and
495 | regulations. You agree that you will not ship, transfer or
496 | export the SDK into any country, or use the SDK in any manner,
497 | prohibited by the United States Bureau of Industry and
498 | Security or economic sanctions regulations administered by the
499 | U.S. Department of Treasury’s Office of Foreign Assets
500 | Control (OFAC), or any applicable export laws, restrictions or
501 | regulations. These laws include restrictions on destinations,
502 | end users and end use. By accepting this Agreement, you
503 | confirm that you are not a resident or citizen of any country
504 | currently embargoed by the U.S. and that you are not otherwise
505 | prohibited from receiving the SDK.
506 |
507 | Any notice delivered by NVIDIA to you under this Agreement
508 | will be delivered via mail, email or fax. You agree that any
509 | notices that NVIDIA sends you electronically will satisfy any
510 | legal communication requirements. Please direct your legal
511 | notices or other correspondence to NVIDIA Corporation, 2788
512 | San Tomas Expressway, Santa Clara, California 95051, United
513 | States of America, Attention: Legal Department.
514 |
515 | This Agreement and any exhibits incorporated into this
516 | Agreement constitute the entire agreement of the parties with
517 | respect to the subject matter of this Agreement and supersede
518 | all prior negotiations or documentation exchanged between the
519 | parties relating to this SDK license. Any additional and/or
520 | conflicting terms on documents issued by you are null, void,
521 | and invalid. Any amendment or waiver under this Agreement
522 | shall be in writing and signed by representatives of both
523 | parties.
524 |
525 |
526 | 2. CUDA Toolkit Supplement to Software License Agreement for
527 | NVIDIA Software Development Kits
528 | ------------------------------------------------------------
529 |
530 | The terms in this supplement govern your use of the NVIDIA
531 | CUDA Toolkit SDK under the terms of your license agreement
532 | (“Agreement”) as modified by this supplement. Capitalized
533 | terms used but not defined below have the meaning assigned to
534 | them in the Agreement.
535 |
536 | This supplement is an exhibit to the Agreement and is
537 | incorporated as an integral part of the Agreement. In the
538 | event of conflict between the terms in this supplement and the
539 | terms in the Agreement, the terms in this supplement govern.
540 |
541 |
542 | 2.1. License Scope
543 |
544 | The SDK is licensed for you to develop applications only for
545 | use in systems with NVIDIA GPUs.
546 |
547 |
548 | 2.2. Distribution
549 |
550 | The portions of the SDK that are distributable under the
551 | Agreement are listed in Attachment A.
552 |
553 |
554 | 2.3. Operating Systems
555 |
556 | Those portions of the SDK designed exclusively for use on the
557 | Linux or FreeBSD operating systems, or other operating systems
558 | derived from the source code to these operating systems, may
559 | be copied and redistributed for use in accordance with this
560 | Agreement, provided that the object code files are not
561 | modified in any way (except for unzipping of compressed
562 | files).
563 |
564 |
565 | 2.4. Audio and Video Encoders and Decoders
566 |
567 | You acknowledge and agree that it is your sole responsibility
568 | to obtain any additional third-party licenses required to
569 | make, have made, use, have used, sell, import, and offer for
570 | sale your products or services that include or incorporate any
571 | third-party software and content relating to audio and/or
572 | video encoders and decoders from, including but not limited
573 | to, Microsoft, Thomson, Fraunhofer IIS, Sisvel S.p.A.,
574 | MPEG-LA, and Coding Technologies. NVIDIA does not grant to you
575 | under this Agreement any necessary patent or other rights with
576 | respect to any audio and/or video encoders and decoders.
577 |
578 |
579 | 2.5. Licensing
580 |
581 | If the distribution terms in this Agreement are not suitable
582 | for your organization, or for any questions regarding this
583 | Agreement, please contact NVIDIA at
584 | nvidia-compute-license-questions@nvidia.com.
585 |
586 |
587 | 2.6. Attachment A
588 |
589 | The following CUDA Toolkit files may be distributed with
590 | Licensee Applications developed by you, including certain
591 | variations of these files that have version number or
592 | architecture specific information embedded in the file name -
593 | as an example only, for release version 9.0 of the 64-bit
594 | Windows software, the file cudart64_90.dll is redistributable.
595 |
596 | Component
597 |
598 | CUDA Runtime
599 |
600 | Windows
601 |
602 | cudart.dll, cudart_static.lib, cudadevrt.lib
603 |
604 | Mac OSX
605 |
606 | libcudart.dylib, libcudart_static.a, libcudadevrt.a
607 |
608 | Linux
609 |
610 | libcudart.so, libcudart_static.a, libcudadevrt.a
611 |
612 | Android
613 |
614 | libcudart.so, libcudart_static.a, libcudadevrt.a
615 |
616 | Component
617 |
618 | CUDA FFT Library
619 |
620 | Windows
621 |
622 | cufft.dll, cufftw.dll, cufft.lib, cufftw.lib
623 |
624 | Mac OSX
625 |
626 | libcufft.dylib, libcufft_static.a, libcufftw.dylib,
627 | libcufftw_static.a
628 |
629 | Linux
630 |
631 | libcufft.so, libcufft_static.a, libcufftw.so,
632 | libcufftw_static.a
633 |
634 | Android
635 |
636 | libcufft.so, libcufft_static.a, libcufftw.so,
637 | libcufftw_static.a
638 |
639 | Component
640 |
641 | CUDA BLAS Library
642 |
643 | Windows
644 |
645 | cublas.dll, cublasLt.dll
646 |
647 | Mac OSX
648 |
649 | libcublas.dylib, libcublasLt.dylib, libcublas_static.a,
650 | libcublasLt_static.a
651 |
652 | Linux
653 |
654 | libcublas.so, libcublasLt.so, libcublas_static.a,
655 | libcublasLt_static.a
656 |
657 | Android
658 |
659 | libcublas.so, libcublasLt.so, libcublas_static.a,
660 | libcublasLt_static.a
661 |
662 | Component
663 |
664 | NVIDIA "Drop-in" BLAS Library
665 |
666 | Windows
667 |
668 | nvblas.dll
669 |
670 | Mac OSX
671 |
672 | libnvblas.dylib
673 |
674 | Linux
675 |
676 | libnvblas.so
677 |
678 | Component
679 |
680 | CUDA Sparse Matrix Library
681 |
682 | Windows
683 |
684 | cusparse.dll, cusparse.lib
685 |
686 | Mac OSX
687 |
688 | libcusparse.dylib, libcusparse_static.a
689 |
690 | Linux
691 |
692 | libcusparse.so, libcusparse_static.a
693 |
694 | Android
695 |
696 | libcusparse.so, libcusparse_static.a
697 |
698 | Component
699 |
700 | CUDA Linear Solver Library
701 |
702 | Windows
703 |
704 | cusolver.dll, cusolver.lib
705 |
706 | Mac OSX
707 |
708 | libcusolver.dylib, libcusolver_static.a
709 |
710 | Linux
711 |
712 | libcusolver.so, libcusolver_static.a
713 |
714 | Android
715 |
716 | libcusolver.so, libcusolver_static.a
717 |
718 | Component
719 |
720 | CUDA Random Number Generation Library
721 |
722 | Windows
723 |
724 | curand.dll, curand.lib
725 |
726 | Mac OSX
727 |
728 | libcurand.dylib, libcurand_static.a
729 |
730 | Linux
731 |
732 | libcurand.so, libcurand_static.a
733 |
734 | Android
735 |
736 | libcurand.so, libcurand_static.a
737 |
738 | Component
739 |
740 | NVIDIA Performance Primitives Library
741 |
742 | Windows
743 |
744 | nppc.dll, nppc.lib, nppial.dll, nppial.lib, nppicc.dll,
745 | nppicc.lib, nppicom.dll, nppicom.lib, nppidei.dll,
746 | nppidei.lib, nppif.dll, nppif.lib, nppig.dll, nppig.lib,
747 | nppim.dll, nppim.lib, nppist.dll, nppist.lib, nppisu.dll,
748 | nppisu.lib, nppitc.dll, nppitc.lib, npps.dll, npps.lib
749 |
750 | Mac OSX
751 |
752 | libnppc.dylib, libnppc_static.a, libnppial.dylib,
753 | libnppial_static.a, libnppicc.dylib, libnppicc_static.a,
754 | libnppicom.dylib, libnppicom_static.a, libnppidei.dylib,
755 | libnppidei_static.a, libnppif.dylib, libnppif_static.a,
756 | libnppig.dylib, libnppig_static.a, libnppim.dylib,
757 | libnppisu_static.a, libnppitc.dylib, libnppitc_static.a,
758 | libnpps.dylib, libnpps_static.a
759 |
760 | Linux
761 |
762 | libnppc.so, libnppc_static.a, libnppial.so,
763 | libnppial_static.a, libnppicc.so, libnppicc_static.a,
764 | libnppicom.so, libnppicom_static.a, libnppidei.so,
765 | libnppidei_static.a, libnppif.so, libnppif_static.a
766 | libnppig.so, libnppig_static.a, libnppim.so,
767 | libnppim_static.a, libnppist.so, libnppist_static.a,
768 | libnppisu.so, libnppisu_static.a, libnppitc.so
769 | libnppitc_static.a, libnpps.so, libnpps_static.a
770 |
771 | Android
772 |
773 | libnppc.so, libnppc_static.a, libnppial.so,
774 | libnppial_static.a, libnppicc.so, libnppicc_static.a,
775 | libnppicom.so, libnppicom_static.a, libnppidei.so,
776 | libnppidei_static.a, libnppif.so, libnppif_static.a
777 | libnppig.so, libnppig_static.a, libnppim.so,
778 | libnppim_static.a, libnppist.so, libnppist_static.a,
779 | libnppisu.so, libnppisu_static.a, libnppitc.so
780 | libnppitc_static.a, libnpps.so, libnpps_static.a
781 |
782 | Component
783 |
784 | NVIDIA JPEG Library
785 |
786 | Windows
787 |
788 | nvjpeg.lib, nvjpeg.dll
789 |
790 | Linux
791 |
792 | libnvjpeg.so, libnvjpeg_static.a
793 |
794 | Component
795 |
796 | Internal common library required for statically linking to
797 | cuBLAS, cuSPARSE, cuFFT, cuRAND, nvJPEG and NPP
798 |
799 | Mac OSX
800 |
801 | libculibos.a
802 |
803 | Linux
804 |
805 | libculibos.a
806 |
807 | Component
808 |
809 | NVIDIA Runtime Compilation Library and Header
810 |
811 | All
812 |
813 | nvrtc.h
814 |
815 | Windows
816 |
817 | nvrtc.dll, nvrtc-builtins.dll
818 |
819 | Mac OSX
820 |
821 | libnvrtc.dylib, libnvrtc-builtins.dylib
822 |
823 | Linux
824 |
825 | libnvrtc.so, libnvrtc-builtins.so
826 |
827 | Component
828 |
829 | NVIDIA Optimizing Compiler Library
830 |
831 | Windows
832 |
833 | nvvm.dll
834 |
835 | Mac OSX
836 |
837 | libnvvm.dylib
838 |
839 | Linux
840 |
841 | libnvvm.so
842 |
843 | Component
844 |
845 | NVIDIA Common Device Math Functions Library
846 |
847 | Windows
848 |
849 | libdevice.10.bc
850 |
851 | Mac OSX
852 |
853 | libdevice.10.bc
854 |
855 | Linux
856 |
857 | libdevice.10.bc
858 |
859 | Component
860 |
861 | CUDA Occupancy Calculation Header Library
862 |
863 | All
864 |
865 | cuda_occupancy.h
866 |
867 | Component
868 |
869 | CUDA Half Precision Headers
870 |
871 | All
872 |
873 | cuda_fp16.h, cuda_fp16.hpp
874 |
875 | Component
876 |
877 | CUDA Profiling Tools Interface (CUPTI) Library
878 |
879 | Windows
880 |
881 | cupti.dll
882 |
883 | Mac OSX
884 |
885 | libcupti.dylib
886 |
887 | Linux
888 |
889 | libcupti.so
890 |
891 | Component
892 |
893 | NVIDIA Tools Extension Library
894 |
895 | Windows
896 |
897 | nvToolsExt.dll, nvToolsExt.lib
898 |
899 | Mac OSX
900 |
901 | libnvToolsExt.dylib
902 |
903 | Linux
904 |
905 | libnvToolsExt.so
906 |
907 | Component
908 |
909 | NVIDIA CUDA Driver Libraries
910 |
911 | Linux
912 |
913 | libcuda.so, libnvidia-ptxjitcompiler.so
914 |
915 | Component
916 |
917 | NVIDIA CUDA File IO Libraries and Header
918 |
919 | All
920 |
921 | cufile.h
922 |
923 | Linux
924 |
925 | libcufile.so, libcufile_rdma.so, libcufile_static.a,
926 | libcufile_rdma_static.a
927 |
928 | The NVIDIA CUDA Driver Libraries are only distributable in
929 | applications that meet this criteria:
930 |
931 | 1. The application was developed starting from a NVIDIA CUDA
932 | container obtained from Docker Hub or the NVIDIA GPU
933 | Cloud, and
934 |
935 | 2. The resulting application is packaged as a Docker
936 | container and distributed to users on Docker Hub or the
937 | NVIDIA GPU Cloud only.
938 |
939 | In addition to the rights above, for parties that are
940 | developing software intended solely for use on Jetson
941 | development kits or Jetson modules, and running Linux for
942 | Tegra software, the following shall apply:
943 |
944 | * The SDK may be distributed in its entirety, as provided by
945 | NVIDIA, and without separation of its components, for you
946 | and/or your licensees to create software development kits
947 | for use only on the Jetson platform and running Linux for
948 | Tegra software.
949 |
950 |
951 | 2.7. Attachment B
952 |
953 |
954 | Additional Licensing Obligations
955 |
956 | The following third party components included in the SOFTWARE
957 | are licensed to Licensee pursuant to the following terms and
958 | conditions:
959 |
960 | 1. Licensee's use of the GDB third party component is
961 | subject to the terms and conditions of GNU GPL v3:
962 |
963 | This product includes copyrighted third-party software licensed
964 | under the terms of the GNU General Public License v3 ("GPL v3").
965 | All third-party software packages are copyright by their respective
966 | authors. GPL v3 terms and conditions are hereby incorporated into
967 | the Agreement by this reference: http://www.gnu.org/licenses/gpl.txt
968 |
969 | Consistent with these licensing requirements, the software
970 | listed below is provided under the terms of the specified
971 | open source software licenses. To obtain source code for
972 | software provided under licenses that require
973 | redistribution of source code, including the GNU General
974 | Public License (GPL) and GNU Lesser General Public License
975 | (LGPL), contact oss-requests@nvidia.com. This offer is
976 | valid for a period of three (3) years from the date of the
977 | distribution of this product by NVIDIA CORPORATION.
978 |
979 | Component License
980 | CUDA-GDB GPL v3
981 |
982 | 2. Licensee represents and warrants that any and all third
983 | party licensing and/or royalty payment obligations in
984 | connection with Licensee's use of the H.264 video codecs
985 | are solely the responsibility of Licensee.
986 |
987 | 3. Licensee's use of the Thrust library is subject to the
988 | terms and conditions of the Apache License Version 2.0.
989 | All third-party software packages are copyright by their
990 | respective authors. Apache License Version 2.0 terms and
991 | conditions are hereby incorporated into the Agreement by
992 | this reference.
993 | http://www.apache.org/licenses/LICENSE-2.0.html
994 |
995 | In addition, Licensee acknowledges the following notice:
996 | Thrust includes source code from the Boost Iterator,
997 | Tuple, System, and Random Number libraries.
998 |
999 | Boost Software License - Version 1.0 - August 17th, 2003
1000 | . . . .
1001 |
1002 | Permission is hereby granted, free of charge, to any person or
1003 | organization obtaining a copy of the software and accompanying
1004 | documentation covered by this license (the "Software") to use,
1005 | reproduce, display, distribute, execute, and transmit the Software,
1006 | and to prepare derivative works of the Software, and to permit
1007 | third-parties to whom the Software is furnished to do so, all
1008 | subject to the following:
1009 |
1010 | The copyright notices in the Software and this entire statement,
1011 | including the above license grant, this restriction and the following
1012 | disclaimer, must be included in all copies of the Software, in whole
1013 | or in part, and all derivative works of the Software, unless such
1014 | copies or derivative works are solely in the form of machine-executable
1015 | object code generated by a source language processor.
1016 |
1017 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1018 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1019 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
1020 | NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
1021 | ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
1022 | OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
1023 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1024 | OTHER DEALINGS IN THE SOFTWARE.
1025 |
1026 | 4. Licensee's use of the LLVM third party component is
1027 | subject to the following terms and conditions:
1028 |
1029 | ======================================================
1030 | LLVM Release License
1031 | ======================================================
1032 | University of Illinois/NCSA
1033 | Open Source License
1034 |
1035 | Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.
1036 | All rights reserved.
1037 |
1038 | Developed by:
1039 |
1040 | LLVM Team
1041 |
1042 | University of Illinois at Urbana-Champaign
1043 |
1044 | http://llvm.org
1045 |
1046 | Permission is hereby granted, free of charge, to any person obtaining a copy
1047 | of this software and associated documentation files (the "Software"), to
1048 | deal with the Software without restriction, including without limitation the
1049 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
1050 | sell copies of the Software, and to permit persons to whom the Software is
1051 | furnished to do so, subject to the following conditions:
1052 |
1053 | * Redistributions of source code must retain the above copyright notice,
1054 | this list of conditions and the following disclaimers.
1055 |
1056 | * Redistributions in binary form must reproduce the above copyright
1057 | notice, this list of conditions and the following disclaimers in the
1058 | documentation and/or other materials provided with the distribution.
1059 |
1060 | * Neither the names of the LLVM Team, University of Illinois at Urbana-
1061 | Champaign, nor the names of its contributors may be used to endorse or
1062 | promote products derived from this Software without specific prior
1063 | written permission.
1064 |
1065 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1066 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1067 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1068 | THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
1069 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1070 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1071 | DEALINGS WITH THE SOFTWARE.
1072 |
1073 | 5. Licensee's use of the PCRE third party component is
1074 | subject to the following terms and conditions:
1075 |
1076 | ------------
1077 | PCRE LICENCE
1078 | ------------
1079 | PCRE is a library of functions to support regular expressions whose syntax
1080 | and semantics are as close as possible to those of the Perl 5 language.
1081 | Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
1082 | specified below. The documentation for PCRE, supplied in the "doc"
1083 | directory, is distributed under the same terms as the software itself. The
1084 | basic library functions are written in C and are freestanding. Also
1085 | included in the distribution is a set of C++ wrapper functions, and a just-
1086 | in-time compiler that can be used to optimize pattern matching. These are
1087 | both optional features that can be omitted when the library is built.
1088 |
1089 | THE BASIC LIBRARY FUNCTIONS
1090 | ---------------------------
1091 | Written by: Philip Hazel
1092 | Email local part: ph10
1093 | Email domain: cam.ac.uk
1094 | University of Cambridge Computing Service,
1095 | Cambridge, England.
1096 | Copyright (c) 1997-2012 University of Cambridge
1097 | All rights reserved.
1098 |
1099 | PCRE JUST-IN-TIME COMPILATION SUPPORT
1100 | -------------------------------------
1101 | Written by: Zoltan Herczeg
1102 | Email local part: hzmester
1103 | Emain domain: freemail.hu
1104 | Copyright(c) 2010-2012 Zoltan Herczeg
1105 | All rights reserved.
1106 |
1107 | STACK-LESS JUST-IN-TIME COMPILER
1108 | --------------------------------
1109 | Written by: Zoltan Herczeg
1110 | Email local part: hzmester
1111 | Emain domain: freemail.hu
1112 | Copyright(c) 2009-2012 Zoltan Herczeg
1113 | All rights reserved.
1114 |
1115 | THE C++ WRAPPER FUNCTIONS
1116 | -------------------------
1117 | Contributed by: Google Inc.
1118 | Copyright (c) 2007-2012, Google Inc.
1119 | All rights reserved.
1120 |
1121 | THE "BSD" LICENCE
1122 | -----------------
1123 | Redistribution and use in source and binary forms, with or without
1124 | modification, are permitted provided that the following conditions are met:
1125 |
1126 | * Redistributions of source code must retain the above copyright notice,
1127 | this list of conditions and the following disclaimer.
1128 |
1129 | * Redistributions in binary form must reproduce the above copyright
1130 | notice, this list of conditions and the following disclaimer in the
1131 | documentation and/or other materials provided with the distribution.
1132 |
1133 | * Neither the name of the University of Cambridge nor the name of Google
1134 | Inc. nor the names of their contributors may be used to endorse or
1135 | promote products derived from this software without specific prior
1136 | written permission.
1137 |
1138 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1139 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1140 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1141 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
1142 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1143 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1144 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1145 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1146 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1147 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1148 | POSSIBILITY OF SUCH DAMAGE.
1149 |
1150 | 6. Some of the cuBLAS library routines were written by or
1151 | derived from code written by Vasily Volkov and are subject
1152 | to the Modified Berkeley Software Distribution License as
1153 | follows:
1154 |
1155 | Copyright (c) 2007-2009, Regents of the University of California
1156 |
1157 | All rights reserved.
1158 |
1159 | Redistribution and use in source and binary forms, with or without
1160 | modification, are permitted provided that the following conditions are
1161 | met:
1162 | * Redistributions of source code must retain the above copyright
1163 | notice, this list of conditions and the following disclaimer.
1164 | * Redistributions in binary form must reproduce the above
1165 | copyright notice, this list of conditions and the following
1166 | disclaimer in the documentation and/or other materials provided
1167 | with the distribution.
1168 | * Neither the name of the University of California, Berkeley nor
1169 | the names of its contributors may be used to endorse or promote
1170 | products derived from this software without specific prior
1171 | written permission.
1172 |
1173 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
1174 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1175 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1176 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1177 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1178 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1179 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1180 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1181 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1182 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1183 | POSSIBILITY OF SUCH DAMAGE.
1184 |
1185 | 7. Some of the cuBLAS library routines were written by or
1186 | derived from code written by Davide Barbieri and are
1187 | subject to the Modified Berkeley Software Distribution
1188 | License as follows:
1189 |
1190 | Copyright (c) 2008-2009 Davide Barbieri @ University of Rome Tor Vergata.
1191 |
1192 | All rights reserved.
1193 |
1194 | Redistribution and use in source and binary forms, with or without
1195 | modification, are permitted provided that the following conditions are
1196 | met:
1197 | * Redistributions of source code must retain the above copyright
1198 | notice, this list of conditions and the following disclaimer.
1199 | * Redistributions in binary form must reproduce the above
1200 | copyright notice, this list of conditions and the following
1201 | disclaimer in the documentation and/or other materials provided
1202 | with the distribution.
1203 | * The name of the author may not be used to endorse or promote
1204 | products derived from this software without specific prior
1205 | written permission.
1206 |
1207 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
1208 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1209 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1210 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1211 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1212 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1213 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1214 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1215 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1216 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1217 | POSSIBILITY OF SUCH DAMAGE.
1218 |
1219 | 8. Some of the cuBLAS library routines were derived from
1220 | code developed by the University of Tennessee and are
1221 | subject to the Modified Berkeley Software Distribution
1222 | License as follows:
1223 |
1224 | Copyright (c) 2010 The University of Tennessee.
1225 |
1226 | All rights reserved.
1227 |
1228 | Redistribution and use in source and binary forms, with or without
1229 | modification, are permitted provided that the following conditions are
1230 | met:
1231 | * Redistributions of source code must retain the above copyright
1232 | notice, this list of conditions and the following disclaimer.
1233 | * Redistributions in binary form must reproduce the above
1234 | copyright notice, this list of conditions and the following
1235 | disclaimer listed in this license in the documentation and/or
1236 | other materials provided with the distribution.
1237 | * Neither the name of the copyright holders nor the names of its
1238 | contributors may be used to endorse or promote products derived
1239 | from this software without specific prior written permission.
1240 |
1241 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1242 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1243 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1244 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1245 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1246 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1247 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1248 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1249 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1250 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1251 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1252 |
1253 | 9. Some of the cuBLAS library routines were written by or
1254 | derived from code written by Jonathan Hogg and are subject
1255 | to the Modified Berkeley Software Distribution License as
1256 | follows:
1257 |
1258 | Copyright (c) 2012, The Science and Technology Facilities Council (STFC).
1259 |
1260 | All rights reserved.
1261 |
1262 | Redistribution and use in source and binary forms, with or without
1263 | modification, are permitted provided that the following conditions are
1264 | met:
1265 | * Redistributions of source code must retain the above copyright
1266 | notice, this list of conditions and the following disclaimer.
1267 | * Redistributions in binary form must reproduce the above
1268 | copyright notice, this list of conditions and the following
1269 | disclaimer in the documentation and/or other materials provided
1270 | with the distribution.
1271 | * Neither the name of the STFC nor the names of its contributors
1272 | may be used to endorse or promote products derived from this
1273 | software without specific prior written permission.
1274 |
1275 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1276 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1277 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1278 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE STFC BE
1279 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1280 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1281 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
1282 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
1283 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
1284 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
1285 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1286 |
1287 | 10. Some of the cuBLAS library routines were written by or
1288 | derived from code written by Ahmad M. Abdelfattah, David
1289 | Keyes, and Hatem Ltaief, and are subject to the Apache
1290 | License, Version 2.0, as follows:
1291 |
1292 | -- (C) Copyright 2013 King Abdullah University of Science and Technology
1293 | Authors:
1294 | Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa)
1295 | David Keyes (david.keyes@kaust.edu.sa)
1296 | Hatem Ltaief (hatem.ltaief@kaust.edu.sa)
1297 |
1298 | Redistribution and use in source and binary forms, with or without
1299 | modification, are permitted provided that the following conditions
1300 | are met:
1301 |
1302 | * Redistributions of source code must retain the above copyright
1303 | notice, this list of conditions and the following disclaimer.
1304 | * Redistributions in binary form must reproduce the above copyright
1305 | notice, this list of conditions and the following disclaimer in the
1306 | documentation and/or other materials provided with the distribution.
1307 | * Neither the name of the King Abdullah University of Science and
1308 | Technology nor the names of its contributors may be used to endorse
1309 | or promote products derived from this software without specific prior
1310 | written permission.
1311 |
1312 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1313 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1314 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1315 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1316 | HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1317 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1318 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1319 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1320 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1321 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1322 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
1323 |
1324 | 11. Some of the cuSPARSE library routines were written by or
1325 | derived from code written by Li-Wen Chang and are subject
1326 | to the NCSA Open Source License as follows:
1327 |
1328 | Copyright (c) 2012, University of Illinois.
1329 |
1330 | All rights reserved.
1331 |
1332 | Developed by: IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu
1333 |
1334 | Permission is hereby granted, free of charge, to any person obtaining
1335 | a copy of this software and associated documentation files (the
1336 | "Software"), to deal with the Software without restriction, including
1337 | without limitation the rights to use, copy, modify, merge, publish,
1338 | distribute, sublicense, and/or sell copies of the Software, and to
1339 | permit persons to whom the Software is furnished to do so, subject to
1340 | the following conditions:
1341 | * Redistributions of source code must retain the above copyright
1342 | notice, this list of conditions and the following disclaimer.
1343 | * Redistributions in binary form must reproduce the above
1344 | copyright notice, this list of conditions and the following
1345 | disclaimers in the documentation and/or other materials provided
1346 | with the distribution.
1347 | * Neither the names of IMPACT Group, University of Illinois, nor
1348 | the names of its contributors may be used to endorse or promote
1349 | products derived from this Software without specific prior
1350 | written permission.
1351 |
1352 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1353 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1354 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1355 | NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
1356 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1357 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
1358 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
1359 | SOFTWARE.
1360 |
1361 | 12. Some of the cuRAND library routines were written by or
1362 | derived from code written by Mutsuo Saito and Makoto
1363 | Matsumoto and are subject to the following license:
1364 |
1365 | Copyright (c) 2009, 2010 Mutsuo Saito, Makoto Matsumoto and Hiroshima
1366 | University. All rights reserved.
1367 |
1368 | Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
1369 | University and University of Tokyo. All rights reserved.
1370 |
1371 | Redistribution and use in source and binary forms, with or without
1372 | modification, are permitted provided that the following conditions are
1373 | met:
1374 | * Redistributions of source code must retain the above copyright
1375 | notice, this list of conditions and the following disclaimer.
1376 | * Redistributions in binary form must reproduce the above
1377 | copyright notice, this list of conditions and the following
1378 | disclaimer in the documentation and/or other materials provided
1379 | with the distribution.
1380 | * Neither the name of the Hiroshima University nor the names of
1381 | its contributors may be used to endorse or promote products
1382 | derived from this software without specific prior written
1383 | permission.
1384 |
1385 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1386 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1387 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1388 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1389 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1390 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1391 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1392 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1393 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1394 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1395 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1396 |
1397 | 13. Some of the cuRAND library routines were derived from
1398 | code developed by D. E. Shaw Research and are subject to
1399 | the following license:
1400 |
1401 | Copyright 2010-2011, D. E. Shaw Research.
1402 |
1403 | All rights reserved.
1404 |
1405 | Redistribution and use in source and binary forms, with or without
1406 | modification, are permitted provided that the following conditions are
1407 | met:
1408 | * Redistributions of source code must retain the above copyright
1409 | notice, this list of conditions, and the following disclaimer.
1410 | * Redistributions in binary form must reproduce the above
1411 | copyright notice, this list of conditions, and the following
1412 | disclaimer in the documentation and/or other materials provided
1413 | with the distribution.
1414 | * Neither the name of D. E. Shaw Research nor the names of its
1415 | contributors may be used to endorse or promote products derived
1416 | from this software without specific prior written permission.
1417 |
1418 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1419 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1420 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1421 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1422 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1423 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1424 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1425 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1426 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1427 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1428 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1429 |
1430 | 14. Some of the Math library routines were written by or
1431 | derived from code developed by Norbert Juffa and are
1432 | subject to the following license:
1433 |
1434 | Copyright (c) 2015-2017, Norbert Juffa
1435 | All rights reserved.
1436 |
1437 | Redistribution and use in source and binary forms, with or without
1438 | modification, are permitted provided that the following conditions
1439 | are met:
1440 |
1441 | 1. Redistributions of source code must retain the above copyright
1442 | notice, this list of conditions and the following disclaimer.
1443 |
1444 | 2. Redistributions in binary form must reproduce the above copyright
1445 | notice, this list of conditions and the following disclaimer in the
1446 | documentation and/or other materials provided with the distribution.
1447 |
1448 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1449 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1450 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1451 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1452 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1453 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1454 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1455 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1456 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1457 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1458 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1459 |
1460 | 15. Licensee's use of the lz4 third party component is
1461 | subject to the following terms and conditions:
1462 |
1463 | Copyright (C) 2011-2013, Yann Collet.
1464 | BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
1465 |
1466 | Redistribution and use in source and binary forms, with or without
1467 | modification, are permitted provided that the following conditions are
1468 | met:
1469 |
1470 | * Redistributions of source code must retain the above copyright
1471 | notice, this list of conditions and the following disclaimer.
1472 | * Redistributions in binary form must reproduce the above
1473 | copyright notice, this list of conditions and the following disclaimer
1474 | in the documentation and/or other materials provided with the
1475 | distribution.
1476 |
1477 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1478 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1479 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1480 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1481 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1482 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1483 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1484 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1485 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1486 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1487 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1488 |
1489 | 16. The NPP library uses code from the Boost Math Toolkit,
1490 | and is subject to the following license:
1491 |
1492 | Boost Software License - Version 1.0 - August 17th, 2003
1493 | . . . .
1494 |
1495 | Permission is hereby granted, free of charge, to any person or
1496 | organization obtaining a copy of the software and accompanying
1497 | documentation covered by this license (the "Software") to use,
1498 | reproduce, display, distribute, execute, and transmit the Software,
1499 | and to prepare derivative works of the Software, and to permit
1500 | third-parties to whom the Software is furnished to do so, all
1501 | subject to the following:
1502 |
1503 | The copyright notices in the Software and this entire statement,
1504 | including the above license grant, this restriction and the following
1505 | disclaimer, must be included in all copies of the Software, in whole
1506 | or in part, and all derivative works of the Software, unless such
1507 | copies or derivative works are solely in the form of machine-executable
1508 | object code generated by a source language processor.
1509 |
1510 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1511 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1512 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
1513 | NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
1514 | ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
1515 | OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
1516 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1517 | OTHER DEALINGS IN THE SOFTWARE.
1518 |
1519 | 17. Portions of the Nsight Eclipse Edition is subject to the
1520 | following license:
1521 |
1522 | The Eclipse Foundation makes available all content in this plug-in
1523 | ("Content"). Unless otherwise indicated below, the Content is provided
1524 | to you under the terms and conditions of the Eclipse Public License
1525 | Version 1.0 ("EPL"). A copy of the EPL is available at http://
1526 | www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program"
1527 | will mean the Content.
1528 |
1529 | If you did not receive this Content directly from the Eclipse
1530 | Foundation, the Content is being redistributed by another party
1531 | ("Redistributor") and different terms and conditions may apply to your
1532 | use of any object code in the Content. Check the Redistributor's
1533 | license that was provided with the Content. If no such license exists,
1534 | contact the Redistributor. Unless otherwise indicated below, the terms
1535 | and conditions of the EPL still apply to any source code in the
1536 | Content and such source code may be obtained at http://www.eclipse.org.
1537 |
1538 | 18. Some of the cuBLAS library routines uses code from
1539 | OpenAI, which is subject to the following license:
1540 |
1541 | License URL
1542 | https://github.com/openai/openai-gemm/blob/master/LICENSE
1543 |
1544 | License Text
1545 | The MIT License
1546 |
1547 | Copyright (c) 2016 OpenAI (http://openai.com), 2016 Google Inc.
1548 |
1549 | Permission is hereby granted, free of charge, to any person obtaining a copy
1550 | of this software and associated documentation files (the "Software"), to deal
1551 | in the Software without restriction, including without limitation the rights
1552 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1553 | copies of the Software, and to permit persons to whom the Software is
1554 | furnished to do so, subject to the following conditions:
1555 |
1556 | The above copyright notice and this permission notice shall be included in
1557 | all copies or substantial portions of the Software.
1558 |
1559 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1560 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1561 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1562 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1563 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1564 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1565 | THE SOFTWARE.
1566 |
1567 | 19. Licensee's use of the Visual Studio Setup Configuration
1568 | Samples is subject to the following license:
1569 |
1570 | The MIT License (MIT)
1571 | Copyright (C) Microsoft Corporation. All rights reserved.
1572 |
1573 | Permission is hereby granted, free of charge, to any person
1574 | obtaining a copy of this software and associated documentation
1575 | files (the "Software"), to deal in the Software without restriction,
1576 | including without limitation the rights to use, copy, modify, merge,
1577 | publish, distribute, sublicense, and/or sell copies of the Software,
1578 | and to permit persons to whom the Software is furnished to do so,
1579 | subject to the following conditions:
1580 |
1581 | The above copyright notice and this permission notice shall be included
1582 | in all copies or substantial portions of the Software.
1583 |
1584 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1585 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1586 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1587 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1588 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1589 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1590 |
1591 | 20. Licensee's use of linmath.h header for CPU functions for
1592 | GL vector/matrix operations from lunarG is subject to the
1593 | Apache License Version 2.0.
1594 |
1595 | 21. The DX12-CUDA sample uses the d3dx12.h header, which is
1596 | subject to the MIT license .
1597 |
1598 | -----------------
1599 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # The cuda-checkpoint Utility
2 |
3 | Checkpoint and restore functionality for CUDA is exposed through a command-line utiity called `cuda-checkpoint`
4 | which is available in the [bin](bin) directory of this repo.
5 | This utility can be used to transparently checkpoint and restore CUDA state within a running Linux process,
6 | and can be combined with [CRIU](https://criu.org/Main_Page) (described below) to fully checkpoint CUDA applications.
7 |
8 | ## 570 Features
9 | Display driver version 570 includes these features not present in 550:
10 | * NVML support
11 | * integration with CRIU 4.0 or higher, providing process tree support
12 | * [CUDA Driver interfaces](https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__CHECKPOINT.html) at feature parity with the `cuda-checkpoint` utility
13 | * a separate lock command which can take a timeout to avoid deadlocks
14 |
15 | This [demo program](src/r570-features.c) shows many of these features in action!
16 |
17 | ## Background
18 | Transparent, per-process checkpointing offers a middle ground between virtual machine checkpointing and application-driven checkpointing.
19 | Per-process checkpointing can be used in combination with containers to checkpoint the state of a complex application,
20 | facilitating uses-cases such as:
21 |
22 | * fault tolerance (with periodic checkpoints)
23 | * preemption of lower-priority work on a single node (by checkpointing the preempted task), and
24 | * cluster scheduling (with migration)
25 |
26 | Virtual Machine|Per-Process|Application Driven
27 | ---|---|---
28 |
|
|
29 |
30 | The most popular utility for transparent per-process checkpointing is a utility called [CRIU](https://criu.org/Main_Page).
31 |
32 | ## CRIU
33 | [CRIU](https://criu.org/Main_Page) (Checkpoint/Restore in Userspace) is an open source checkpointing utility
34 | (maintained outside of NVIDIA) for Linux which can checkpoint and restore process trees.
35 | CRIU exposes its functionality through a command line program called `criu`
36 | and operates by checkpointing and restoring every kernel mode resource associated with a process. These resources include:
37 |
38 | * anonymous memory,
39 | * threads,
40 | * regular files,
41 | * sockets, and
42 | * pipes between checkpointed processes.
43 |
44 | Since the behavior of these resources is specified by Linux, and are independent of the underlying hardware,
45 | CRIU knows how to checkpoint and restore them.
46 | In contrast, NVIDIA GPUs provide functionality beyond that of a standard Linux kernel, and thus CRIU is not able to manage them.
47 | `cuda-checkpoint` adds this capability, and can therefore be used with CRIU to checkpoint and restore a CUDA application.
48 |
49 |
50 | ## The Utility
51 | `cuda-checkpoint` checkpoints and restores the CUDA state of a single Linux process.
52 | The `cuda-checkpoint` utility supports display driver version 550 and higher and is located in the [bin](bin) directory of this repo.
53 |
54 | ```bash
55 | localhost$ cuda-checkpoint --help
56 | CUDA checkpoint and restore utility.
57 | Version 570.86.10. Copyright (C) 2025 NVIDIA Corporation. All rights reserved.
58 |
59 | Operations:
60 | --get-state --pid
61 | Prints the current checkpoint state of the process specified by
62 |
63 | --action lock | checkpoint | restore | unlock --pid [--timeout ]
64 | Performs the specified action on .
65 | For the lock action a timeout can be provided, the lock operation will wait up to milliseconds for the operation to succeed.
66 |
67 | --toggle --pid
68 | Toggles the CUDA state in the specified process between the running and checkpointed states
69 |
70 | --get-restore-tid --pid
71 | Retrieves the CUDA restore thread ID of the process specified by
72 |
73 | Options:
74 | --pid|-p
75 | The pid upon which to perform the operation
76 |
77 | --timeout|-t
78 | Optional timeout that can be specified for the lock action in milliseconds
79 |
80 | --help|-h
81 | Print this help message
82 | ```
83 |
84 | The `cuda-checkpoint` binary can toggle the CUDA state of a process (specified by PID) between suspended and running.
85 | A running-to-suspended transition is called a suspend and the opposite transition is called a resume.
86 |
87 | A process's CUDA state is initially running.
88 | When `cuda-checkpoint` is used to suspend CUDA in a process:
89 |
90 | 1.
any CUDA driver APIs which launch work, manage resources, or otherwise impact GPU state are locked;
91 | 2.
already-submitted CUDA work, including stream callbacks, are completed;
92 | 3.
device memory is copied to the host, into allocations managed by the CUDA driver; and
93 | 4.
all of CUDA’s GPU resources are released.
94 |
95 | ``cuda-checkpoint`` does not suspend CPU threads, which may continue to safely interact with CUDA by:
96 | calling runtime or driver APIs (which may block until CUDA is resumed), and
97 | accessing host memory (allocated by cudaMallocHost and similar APIs) which remains valid.
98 |
99 | A suspended CUDA process no longer directly refers to any GPU hardware at the OS level
100 | and may therefore be checkpointed by a CPU checkpointing utility such as CRIU.
101 |
102 | When a process’s CUDA state is resumed using ``cuda-checkpoint``:
103 |
104 | 1.
GPUs are re-acquired by the process;
105 | 2.
device memory is copied back to the GPU, and GPU memory mappings are restored at their original addresses;
106 | 3.
CUDA objects such as streams and contexts are restored; and
107 | 4.
CUDA driver APIs are unlocked.
108 |
109 | At this point, CUDA calls will unblock and CUDA may begin running on the GPU again.
110 |
111 | ## Example
112 | This example will use `cuda-checkpoint` and `criu` to checkpoint a CUDA application called *counter*.
113 | Every time *counter* receives a packet, it increments GPU memory and replies with the updated value.
114 | The [source code](src/counter.cu) for *counter* is shown below.
115 |
116 | ```cuda
117 | #include
118 | #include
119 | #include
120 | #include
121 | #include
122 |
123 | #define PORT 10000
124 |
125 | __device__ int counter = 100;
126 | __global__ void increment()
127 | {
128 | counter++;
129 | }
130 |
131 | int main(void)
132 | {
133 | cudaFree(0);
134 |
135 | int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
136 | sockaddr_in addr = {AF_INET, htons(PORT), inet_addr("127.0.0.1")};
137 | bind(sock, (sockaddr *)&addr, sizeof addr);
138 |
139 | while (true) {
140 | char buffer[16] = {0};
141 | sockaddr_in peer = {0};
142 | socklen_t inetSize = sizeof peer;
143 | int hCounter = 0;
144 |
145 | recvfrom(sock, buffer, sizeof buffer, 0, (sockaddr *)&peer, &inetSize);
146 |
147 | increment<<<1,1>>>();
148 | cudaMemcpyFromSymbol(&hCounter, counter, sizeof counter);
149 |
150 | size_t bytes = sprintf(buffer, "%d\n", hCounter);
151 | sendto(sock, buffer, bytes, 0, (sockaddr *)&peer, inetSize);
152 | }
153 | return 0;
154 | }
155 | ```
156 |
157 | The *counter* application can be built using `nvcc`.
158 |
159 | ```bash
160 | localhost$ nvcc counter.cu -o counter
161 | ```
162 |
163 | Next, launch *counter* and wait to be sure that it is listening on its socket
164 | (which is important if this demo is being launched as [a single script](src/example.sh)).
165 |
166 | ```bash
167 | localhost# ./counter &
168 | [1] 298027
169 | localhost# sleep 1
170 | ```
171 |
172 | Save *counter*’s PID for reference in subsequent commands.
173 |
174 | ```bash
175 | localhost# PID=$!
176 | ```
177 |
178 | Send *counter* a packet and observe the returned value.
179 | The initial value was 100 but the response is 101, showing that the GPU memory has changed since initialization.
180 |
181 | ```bash
182 | localhost# echo hello | nc -u localhost 10000 -W 1
183 | 101
184 | ```
185 |
186 | Use `nvidia-smi` to confirm that *counter* is running on a GPU.
187 |
188 | ```bash
189 | localhost# nvidia-smi --query --display=PIDS | grep $PID
190 | Process ID : 298027
191 | ```
192 |
193 | Use `cuda-checkpoint` to suspend *counter*’s CUDA state.
194 |
195 | ```bash
196 | localhost# cuda-checkpoint --toggle --pid $PID
197 | ```
198 |
199 | Use `nvidia-smi` to confirm that *counter* is no longer running on a GPU
200 |
201 | ```bash
202 | localhost# nvidia-smi --query --display=PIDS | grep $PID
203 | ```
204 |
205 | Create a directory to hold the checkpoint image
206 |
207 | ```bash
208 | localhost# mkdir -p demo
209 | ```
210 |
211 | Use `criu` to checkpoint *counter*
212 |
213 | ```bash
214 | localhost# criu dump --shell-job --images-dir demo --tree $PID
215 | [1]+ Killed ./counter
216 | ```
217 |
218 | Confirm that *counter* is no longer running
219 |
220 | ```bash
221 | localhost# ps --pid $PID
222 | PID TTY TIME CMD
223 | ```
224 |
225 | Use `criu` to restore *counter*
226 |
227 | ```bash
228 | localhost# criu restore --shell-job --restore-detached --images-dir demo
229 | ```
230 |
231 | Use `cuda-checkpoint` to resume *counter*’s CUDA state
232 |
233 | ```bash
234 | localhost# cuda-checkpoint --toggle --pid $PID
235 | ```
236 |
237 | Now that *counter* is fully restored, send it another packet.
238 | The response is 102, showing that earlier GPU operations were persisted correctly!
239 |
240 | ```bash
241 | localhost# echo hello | nc -u localhost 10000 -W 1
242 | 102
243 | ```
244 |
245 | ## Functionality
246 | As of display driver version 570, checkpoint and restore functionality is still being actively developed.
247 | In particular, `cuda-checkpoint`:
248 |
249 | * is x64 only,
250 | * does not support UVM or IPC memory,
251 | * does not support GPU migration,
252 | * waits for already-submitted CUDA work to finish before completing a checkpoint,
253 | * does not attempt to keep the process in a good state if an error (such as the presence of a UVM allocation) is encountered during checkpoint or restore.
254 |
255 | These limitations will be addressed in subsequent display driver releases,
256 | and will not require an update to the `cuda-checkpoint` utility itself.
257 | The `cuda-checkpoint` utility simply exposes functionality that is contained in the driver.
258 |
259 | ## License
260 | By downloading or using the software, you agree to the terms of the [License Agreement for NVIDIA Software Development Kits — EULA](https://docs.nvidia.com/cuda/eula/index.html).
261 |
--------------------------------------------------------------------------------
/bin/x86_64_Linux/LICENSE:
--------------------------------------------------------------------------------
1 | End User License Agreement
2 | --------------------------
3 |
4 | NVIDIA Software License Agreement and CUDA Supplement to
5 | Software License Agreement. Last updated: October 8, 2021
6 |
7 | The CUDA Toolkit End User License Agreement applies to the
8 | NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA
9 | Display Driver, NVIDIA Nsight tools (Visual Studio Edition),
10 | and the associated documentation on CUDA APIs, programming
11 | model and development tools. If you do not agree with the
12 | terms and conditions of the license agreement, then do not
13 | download or use the software.
14 |
15 | Last updated: October 8, 2021.
16 |
17 |
18 | Preface
19 | -------
20 |
21 | The Software License Agreement in Chapter 1 and the Supplement
22 | in Chapter 2 contain license terms and conditions that govern
23 | the use of NVIDIA software. By accepting this agreement, you
24 | agree to comply with all the terms and conditions applicable
25 | to the product(s) included herein.
26 |
27 |
28 | NVIDIA Driver
29 |
30 |
31 | Description
32 |
33 | This package contains the operating system driver and
34 | fundamental system software components for NVIDIA GPUs.
35 |
36 |
37 | NVIDIA CUDA Toolkit
38 |
39 |
40 | Description
41 |
42 | The NVIDIA CUDA Toolkit provides command-line and graphical
43 | tools for building, debugging and optimizing the performance
44 | of applications accelerated by NVIDIA GPUs, runtime and math
45 | libraries, and documentation including programming guides,
46 | user manuals, and API references.
47 |
48 |
49 | Default Install Location of CUDA Toolkit
50 |
51 | Windows platform:
52 |
53 | %ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v#.#
54 |
55 | Linux platform:
56 |
57 | /usr/local/cuda-#.#
58 |
59 | Mac platform:
60 |
61 | /Developer/NVIDIA/CUDA-#.#
62 |
63 |
64 | NVIDIA CUDA Samples
65 |
66 |
67 | Description
68 |
69 | CUDA Samples are now located in
70 | https://github.com/nvidia/cuda-samples, which includes
71 | instructions for obtaining, building, and running the samples.
72 | They are no longer included in the CUDA toolkit.
73 |
74 |
75 | NVIDIA Nsight Visual Studio Edition (Windows only)
76 |
77 |
78 | Description
79 |
80 | NVIDIA Nsight Development Platform, Visual Studio Edition is a
81 | development environment integrated into Microsoft Visual
82 | Studio that provides tools for debugging, profiling, analyzing
83 | and optimizing your GPU computing and graphics applications.
84 |
85 |
86 | Default Install Location of Nsight Visual Studio Edition
87 |
88 | Windows platform:
89 |
90 | %ProgramFiles(x86)%\NVIDIA Corporation\Nsight Visual Studio Edition #.#
91 |
92 |
93 | 1. License Agreement for NVIDIA Software Development Kits
94 | ---------------------------------------------------------
95 |
96 |
97 | Important Notice—Read before downloading, installing,
98 | copying or using the licensed software:
99 | -------------------------------------------------------
100 |
101 | This license agreement, including exhibits attached
102 | ("Agreement”) is a legal agreement between you and NVIDIA
103 | Corporation ("NVIDIA") and governs your use of a NVIDIA
104 | software development kit (“SDK”).
105 |
106 | Each SDK has its own set of software and materials, but here
107 | is a description of the types of items that may be included in
108 | a SDK: source code, header files, APIs, data sets and assets
109 | (examples include images, textures, models, scenes, videos,
110 | native API input/output files), binary software, sample code,
111 | libraries, utility programs, programming code and
112 | documentation.
113 |
114 | This Agreement can be accepted only by an adult of legal age
115 | of majority in the country in which the SDK is used.
116 |
117 | If you are entering into this Agreement on behalf of a company
118 | or other legal entity, you represent that you have the legal
119 | authority to bind the entity to this Agreement, in which case
120 | “you” will mean the entity you represent.
121 |
122 | If you don’t have the required age or authority to accept
123 | this Agreement, or if you don’t accept all the terms and
124 | conditions of this Agreement, do not download, install or use
125 | the SDK.
126 |
127 | You agree to use the SDK only for purposes that are permitted
128 | by (a) this Agreement, and (b) any applicable law, regulation
129 | or generally accepted practices or guidelines in the relevant
130 | jurisdictions.
131 |
132 |
133 | 1.1. License
134 |
135 |
136 | 1.1.1. License Grant
137 |
138 | Subject to the terms of this Agreement, NVIDIA hereby grants
139 | you a non-exclusive, non-transferable license, without the
140 | right to sublicense (except as expressly provided in this
141 | Agreement) to:
142 |
143 | 1. Install and use the SDK,
144 |
145 | 2. Modify and create derivative works of sample source code
146 | delivered in the SDK, and
147 |
148 | 3. Distribute those portions of the SDK that are identified
149 | in this Agreement as distributable, as incorporated in
150 | object code format into a software application that meets
151 | the distribution requirements indicated in this Agreement.
152 |
153 |
154 | 1.1.2. Distribution Requirements
155 |
156 | These are the distribution requirements for you to exercise
157 | the distribution grant:
158 |
159 | 1. Your application must have material additional
160 | functionality, beyond the included portions of the SDK.
161 |
162 | 2. The distributable portions of the SDK shall only be
163 | accessed by your application.
164 |
165 | 3. The following notice shall be included in modifications
166 | and derivative works of sample source code distributed:
167 | “This software contains source code provided by NVIDIA
168 | Corporation.”
169 |
170 | 4. Unless a developer tool is identified in this Agreement
171 | as distributable, it is delivered for your internal use
172 | only.
173 |
174 | 5. The terms under which you distribute your application
175 | must be consistent with the terms of this Agreement,
176 | including (without limitation) terms relating to the
177 | license grant and license restrictions and protection of
178 | NVIDIA’s intellectual property rights. Additionally, you
179 | agree that you will protect the privacy, security and
180 | legal rights of your application users.
181 |
182 | 6. You agree to notify NVIDIA in writing of any known or
183 | suspected distribution or use of the SDK not in compliance
184 | with the requirements of this Agreement, and to enforce
185 | the terms of your agreements with respect to distributed
186 | SDK.
187 |
188 |
189 | 1.1.3. Authorized Users
190 |
191 | You may allow employees and contractors of your entity or of
192 | your subsidiary(ies) to access and use the SDK from your
193 | secure network to perform work on your behalf.
194 |
195 | If you are an academic institution you may allow users
196 | enrolled or employed by the academic institution to access and
197 | use the SDK from your secure network.
198 |
199 | You are responsible for the compliance with the terms of this
200 | Agreement by your authorized users. If you become aware that
201 | your authorized users didn’t follow the terms of this
202 | Agreement, you agree to take reasonable steps to resolve the
203 | non-compliance and prevent new occurrences.
204 |
205 |
206 | 1.1.4. Pre-Release SDK
207 |
208 | The SDK versions identified as alpha, beta, preview or
209 | otherwise as pre-release, may not be fully functional, may
210 | contain errors or design flaws, and may have reduced or
211 | different security, privacy, accessibility, availability, and
212 | reliability standards relative to commercial versions of
213 | NVIDIA software and materials. Use of a pre-release SDK may
214 | result in unexpected results, loss of data, project delays or
215 | other unpredictable damage or loss.
216 |
217 | You may use a pre-release SDK at your own risk, understanding
218 | that pre-release SDKs are not intended for use in production
219 | or business-critical systems.
220 |
221 | NVIDIA may choose not to make available a commercial version
222 | of any pre-release SDK. NVIDIA may also choose to abandon
223 | development and terminate the availability of a pre-release
224 | SDK at any time without liability.
225 |
226 |
227 | 1.1.5. Updates
228 |
229 | NVIDIA may, at its option, make available patches, workarounds
230 | or other updates to this SDK. Unless the updates are provided
231 | with their separate governing terms, they are deemed part of
232 | the SDK licensed to you as provided in this Agreement. You
233 | agree that the form and content of the SDK that NVIDIA
234 | provides may change without prior notice to you. While NVIDIA
235 | generally maintains compatibility between versions, NVIDIA may
236 | in some cases make changes that introduce incompatibilities in
237 | future versions of the SDK.
238 |
239 |
240 | 1.1.6. Components Under Other Licenses
241 |
242 | The SDK may come bundled with, or otherwise include or be
243 | distributed with, NVIDIA or third-party components with
244 | separate legal notices or terms as may be described in
245 | proprietary notices accompanying the SDK. If and to the extent
246 | there is a conflict between the terms in this Agreement and
247 | the license terms associated with the component, the license
248 | terms associated with the components control only to the
249 | extent necessary to resolve the conflict.
250 |
251 | Subject to the other terms of this Agreement, you may use the
252 | SDK to develop and test applications released under Open
253 | Source Initiative (OSI) approved open source software
254 | licenses.
255 |
256 |
257 | 1.1.7. Reservation of Rights
258 |
259 | NVIDIA reserves all rights, title, and interest in and to the
260 | SDK, not expressly granted to you under this Agreement.
261 |
262 |
263 | 1.2. Limitations
264 |
265 | The following license limitations apply to your use of the
266 | SDK:
267 |
268 | 1. You may not reverse engineer, decompile or disassemble,
269 | or remove copyright or other proprietary notices from any
270 | portion of the SDK or copies of the SDK.
271 |
272 | 2. Except as expressly provided in this Agreement, you may
273 | not copy, sell, rent, sublicense, transfer, distribute,
274 | modify, or create derivative works of any portion of the
275 | SDK. For clarity, you may not distribute or sublicense the
276 | SDK as a stand-alone product.
277 |
278 | 3. Unless you have an agreement with NVIDIA for this
279 | purpose, you may not indicate that an application created
280 | with the SDK is sponsored or endorsed by NVIDIA.
281 |
282 | 4. You may not bypass, disable, or circumvent any
283 | encryption, security, digital rights management or
284 | authentication mechanism in the SDK.
285 |
286 | 5. You may not use the SDK in any manner that would cause it
287 | to become subject to an open source software license. As
288 | examples, licenses that require as a condition of use,
289 | modification, and/or distribution that the SDK be:
290 |
291 | a. Disclosed or distributed in source code form;
292 |
293 | b. Licensed for the purpose of making derivative works;
294 | or
295 |
296 | c. Redistributable at no charge.
297 |
298 | 6. You acknowledge that the SDK as delivered is not tested
299 | or certified by NVIDIA for use in connection with the
300 | design, construction, maintenance, and/or operation of any
301 | system where the use or failure of such system could
302 | result in a situation that threatens the safety of human
303 | life or results in catastrophic damages (each, a "Critical
304 | Application"). Examples of Critical Applications include
305 | use in avionics, navigation, autonomous vehicle
306 | applications, ai solutions for automotive products,
307 | military, medical, life support or other life critical
308 | applications. NVIDIA shall not be liable to you or any
309 | third party, in whole or in part, for any claims or
310 | damages arising from such uses. You are solely responsible
311 | for ensuring that any product or service developed with
312 | the SDK as a whole includes sufficient features to comply
313 | with all applicable legal and regulatory standards and
314 | requirements.
315 |
316 | 7. You agree to defend, indemnify and hold harmless NVIDIA
317 | and its affiliates, and their respective employees,
318 | contractors, agents, officers and directors, from and
319 | against any and all claims, damages, obligations, losses,
320 | liabilities, costs or debt, fines, restitutions and
321 | expenses (including but not limited to attorney’s fees
322 | and costs incident to establishing the right of
323 | indemnification) arising out of or related to products or
324 | services that use the SDK in or for Critical Applications,
325 | and for use of the SDK outside of the scope of this
326 | Agreement or not in compliance with its terms.
327 |
328 | 8. You may not reverse engineer, decompile or disassemble
329 | any portion of the output generated using SDK elements for
330 | the purpose of translating such output artifacts to target
331 | a non-NVIDIA platform.
332 |
333 |
334 | 1.3. Ownership
335 |
336 | 1. NVIDIA or its licensors hold all rights, title and
337 | interest in and to the SDK and its modifications and
338 | derivative works, including their respective intellectual
339 | property rights, subject to your rights under Section
340 | 1.3.2. This SDK may include software and materials from
341 | NVIDIA’s licensors, and these licensors are intended
342 | third party beneficiaries that may enforce this Agreement
343 | with respect to their intellectual property rights.
344 |
345 | 2. You hold all rights, title and interest in and to your
346 | applications and your derivative works of the sample
347 | source code delivered in the SDK, including their
348 | respective intellectual property rights, subject to
349 | NVIDIA’s rights under Section 1.3.1.
350 |
351 | 3. You may, but don’t have to, provide to NVIDIA
352 | suggestions, feature requests or other feedback regarding
353 | the SDK, including possible enhancements or modifications
354 | to the SDK. For any feedback that you voluntarily provide,
355 | you hereby grant NVIDIA and its affiliates a perpetual,
356 | non-exclusive, worldwide, irrevocable license to use,
357 | reproduce, modify, license, sublicense (through multiple
358 | tiers of sublicensees), and distribute (through multiple
359 | tiers of distributors) it without the payment of any
360 | royalties or fees to you. NVIDIA will use feedback at its
361 | choice. NVIDIA is constantly looking for ways to improve
362 | its products, so you may send feedback to NVIDIA through
363 | the developer portal at https://developer.nvidia.com.
364 |
365 |
366 | 1.4. No Warranties
367 |
368 | THE SDK IS PROVIDED BY NVIDIA “AS IS” AND “WITH ALL
369 | FAULTS.” TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND
370 | ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND
371 | OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,
372 | BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
373 | FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, OR THE
374 | ABSENCE OF ANY DEFECTS THEREIN, WHETHER LATENT OR PATENT. NO
375 | WARRANTY IS MADE ON THE BASIS OF TRADE USAGE, COURSE OF
376 | DEALING OR COURSE OF TRADE.
377 |
378 |
379 | 1.5. Limitation of Liability
380 |
381 | TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS
382 | AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
383 | PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, LOSS
384 | OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF
385 | PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION
386 | WITH THIS AGREEMENT OR THE USE OR PERFORMANCE OF THE SDK,
387 | WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH
388 | OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE),
389 | PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF
390 | LIABILITY. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES
391 | TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS
392 | AGREEMENT EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE
393 | NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS
394 | LIMIT.
395 |
396 | These exclusions and limitations of liability shall apply
397 | regardless if NVIDIA or its affiliates have been advised of
398 | the possibility of such damages, and regardless of whether a
399 | remedy fails its essential purpose. These exclusions and
400 | limitations of liability form an essential basis of the
401 | bargain between the parties, and, absent any of these
402 | exclusions or limitations of liability, the provisions of this
403 | Agreement, including, without limitation, the economic terms,
404 | would be substantially different.
405 |
406 |
407 | 1.6. Termination
408 |
409 | 1. This Agreement will continue to apply until terminated by
410 | either you or NVIDIA as described below.
411 |
412 | 2. If you want to terminate this Agreement, you may do so by
413 | stopping to use the SDK.
414 |
415 | 3. NVIDIA may, at any time, terminate this Agreement if:
416 |
417 | a. (i) you fail to comply with any term of this
418 | Agreement and the non-compliance is not fixed within
419 | thirty (30) days following notice from NVIDIA (or
420 | immediately if you violate NVIDIA’s intellectual
421 | property rights);
422 |
423 | b. (ii) you commence or participate in any legal
424 | proceeding against NVIDIA with respect to the SDK; or
425 |
426 | c. (iii) NVIDIA decides to no longer provide the SDK in
427 | a country or, in NVIDIA’s sole discretion, the
428 | continued use of it is no longer commercially viable.
429 |
430 | 4. Upon any termination of this Agreement, you agree to
431 | promptly discontinue use of the SDK and destroy all copies
432 | in your possession or control. Your prior distributions in
433 | accordance with this Agreement are not affected by the
434 | termination of this Agreement. Upon written request, you
435 | will certify in writing that you have complied with your
436 | commitments under this section. Upon any termination of
437 | this Agreement all provisions survive except for the
438 | license grant provisions.
439 |
440 |
441 | 1.7. General
442 |
443 | If you wish to assign this Agreement or your rights and
444 | obligations, including by merger, consolidation, dissolution
445 | or operation of law, contact NVIDIA to ask for permission. Any
446 | attempted assignment not approved by NVIDIA in writing shall
447 | be void and of no effect. NVIDIA may assign, delegate or
448 | transfer this Agreement and its rights and obligations, and if
449 | to a non-affiliate you will be notified.
450 |
451 | You agree to cooperate with NVIDIA and provide reasonably
452 | requested information to verify your compliance with this
453 | Agreement.
454 |
455 | This Agreement will be governed in all respects by the laws of
456 | the United States and of the State of Delaware as those laws
457 | are applied to contracts entered into and performed entirely
458 | within Delaware by Delaware residents, without regard to the
459 | conflicts of laws principles. The United Nations Convention on
460 | Contracts for the International Sale of Goods is specifically
461 | disclaimed. You agree to all terms of this Agreement in the
462 | English language.
463 |
464 | The state or federal courts residing in Santa Clara County,
465 | California shall have exclusive jurisdiction over any dispute
466 | or claim arising out of this Agreement. Notwithstanding this,
467 | you agree that NVIDIA shall still be allowed to apply for
468 | injunctive remedies or an equivalent type of urgent legal
469 | relief in any jurisdiction.
470 |
471 | If any court of competent jurisdiction determines that any
472 | provision of this Agreement is illegal, invalid or
473 | unenforceable, such provision will be construed as limited to
474 | the extent necessary to be consistent with and fully
475 | enforceable under the law and the remaining provisions will
476 | remain in full force and effect. Unless otherwise specified,
477 | remedies are cumulative.
478 |
479 | Each party acknowledges and agrees that the other is an
480 | independent contractor in the performance of this Agreement.
481 |
482 | The SDK has been developed entirely at private expense and is
483 | “commercial items” consisting of “commercial computer
484 | software” and “commercial computer software
485 | documentation” provided with RESTRICTED RIGHTS. Use,
486 | duplication or disclosure by the U.S. Government or a U.S.
487 | Government subcontractor is subject to the restrictions in
488 | this Agreement pursuant to DFARS 227.7202-3(a) or as set forth
489 | in subparagraphs (c)(1) and (2) of the Commercial Computer
490 | Software - Restricted Rights clause at FAR 52.227-19, as
491 | applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas
492 | Expressway, Santa Clara, CA 95051.
493 |
494 | The SDK is subject to United States export laws and
495 | regulations. You agree that you will not ship, transfer or
496 | export the SDK into any country, or use the SDK in any manner,
497 | prohibited by the United States Bureau of Industry and
498 | Security or economic sanctions regulations administered by the
499 | U.S. Department of Treasury’s Office of Foreign Assets
500 | Control (OFAC), or any applicable export laws, restrictions or
501 | regulations. These laws include restrictions on destinations,
502 | end users and end use. By accepting this Agreement, you
503 | confirm that you are not a resident or citizen of any country
504 | currently embargoed by the U.S. and that you are not otherwise
505 | prohibited from receiving the SDK.
506 |
507 | Any notice delivered by NVIDIA to you under this Agreement
508 | will be delivered via mail, email or fax. You agree that any
509 | notices that NVIDIA sends you electronically will satisfy any
510 | legal communication requirements. Please direct your legal
511 | notices or other correspondence to NVIDIA Corporation, 2788
512 | San Tomas Expressway, Santa Clara, California 95051, United
513 | States of America, Attention: Legal Department.
514 |
515 | This Agreement and any exhibits incorporated into this
516 | Agreement constitute the entire agreement of the parties with
517 | respect to the subject matter of this Agreement and supersede
518 | all prior negotiations or documentation exchanged between the
519 | parties relating to this SDK license. Any additional and/or
520 | conflicting terms on documents issued by you are null, void,
521 | and invalid. Any amendment or waiver under this Agreement
522 | shall be in writing and signed by representatives of both
523 | parties.
524 |
525 |
526 | 2. CUDA Toolkit Supplement to Software License Agreement for
527 | NVIDIA Software Development Kits
528 | ------------------------------------------------------------
529 |
530 | The terms in this supplement govern your use of the NVIDIA
531 | CUDA Toolkit SDK under the terms of your license agreement
532 | (“Agreement”) as modified by this supplement. Capitalized
533 | terms used but not defined below have the meaning assigned to
534 | them in the Agreement.
535 |
536 | This supplement is an exhibit to the Agreement and is
537 | incorporated as an integral part of the Agreement. In the
538 | event of conflict between the terms in this supplement and the
539 | terms in the Agreement, the terms in this supplement govern.
540 |
541 |
542 | 2.1. License Scope
543 |
544 | The SDK is licensed for you to develop applications only for
545 | use in systems with NVIDIA GPUs.
546 |
547 |
548 | 2.2. Distribution
549 |
550 | The portions of the SDK that are distributable under the
551 | Agreement are listed in Attachment A.
552 |
553 |
554 | 2.3. Operating Systems
555 |
556 | Those portions of the SDK designed exclusively for use on the
557 | Linux or FreeBSD operating systems, or other operating systems
558 | derived from the source code to these operating systems, may
559 | be copied and redistributed for use in accordance with this
560 | Agreement, provided that the object code files are not
561 | modified in any way (except for unzipping of compressed
562 | files).
563 |
564 |
565 | 2.4. Audio and Video Encoders and Decoders
566 |
567 | You acknowledge and agree that it is your sole responsibility
568 | to obtain any additional third-party licenses required to
569 | make, have made, use, have used, sell, import, and offer for
570 | sale your products or services that include or incorporate any
571 | third-party software and content relating to audio and/or
572 | video encoders and decoders from, including but not limited
573 | to, Microsoft, Thomson, Fraunhofer IIS, Sisvel S.p.A.,
574 | MPEG-LA, and Coding Technologies. NVIDIA does not grant to you
575 | under this Agreement any necessary patent or other rights with
576 | respect to any audio and/or video encoders and decoders.
577 |
578 |
579 | 2.5. Licensing
580 |
581 | If the distribution terms in this Agreement are not suitable
582 | for your organization, or for any questions regarding this
583 | Agreement, please contact NVIDIA at
584 | nvidia-compute-license-questions@nvidia.com.
585 |
586 |
587 | 2.6. Attachment A
588 |
589 | The following CUDA Toolkit files may be distributed with
590 | Licensee Applications developed by you, including certain
591 | variations of these files that have version number or
592 | architecture specific information embedded in the file name -
593 | as an example only, for release version 9.0 of the 64-bit
594 | Windows software, the file cudart64_90.dll is redistributable.
595 |
596 | Component
597 |
598 | CUDA Runtime
599 |
600 | Windows
601 |
602 | cudart.dll, cudart_static.lib, cudadevrt.lib
603 |
604 | Mac OSX
605 |
606 | libcudart.dylib, libcudart_static.a, libcudadevrt.a
607 |
608 | Linux
609 |
610 | libcudart.so, libcudart_static.a, libcudadevrt.a
611 |
612 | Android
613 |
614 | libcudart.so, libcudart_static.a, libcudadevrt.a
615 |
616 | Component
617 |
618 | CUDA FFT Library
619 |
620 | Windows
621 |
622 | cufft.dll, cufftw.dll, cufft.lib, cufftw.lib
623 |
624 | Mac OSX
625 |
626 | libcufft.dylib, libcufft_static.a, libcufftw.dylib,
627 | libcufftw_static.a
628 |
629 | Linux
630 |
631 | libcufft.so, libcufft_static.a, libcufftw.so,
632 | libcufftw_static.a
633 |
634 | Android
635 |
636 | libcufft.so, libcufft_static.a, libcufftw.so,
637 | libcufftw_static.a
638 |
639 | Component
640 |
641 | CUDA BLAS Library
642 |
643 | Windows
644 |
645 | cublas.dll, cublasLt.dll
646 |
647 | Mac OSX
648 |
649 | libcublas.dylib, libcublasLt.dylib, libcublas_static.a,
650 | libcublasLt_static.a
651 |
652 | Linux
653 |
654 | libcublas.so, libcublasLt.so, libcublas_static.a,
655 | libcublasLt_static.a
656 |
657 | Android
658 |
659 | libcublas.so, libcublasLt.so, libcublas_static.a,
660 | libcublasLt_static.a
661 |
662 | Component
663 |
664 | NVIDIA "Drop-in" BLAS Library
665 |
666 | Windows
667 |
668 | nvblas.dll
669 |
670 | Mac OSX
671 |
672 | libnvblas.dylib
673 |
674 | Linux
675 |
676 | libnvblas.so
677 |
678 | Component
679 |
680 | CUDA Sparse Matrix Library
681 |
682 | Windows
683 |
684 | cusparse.dll, cusparse.lib
685 |
686 | Mac OSX
687 |
688 | libcusparse.dylib, libcusparse_static.a
689 |
690 | Linux
691 |
692 | libcusparse.so, libcusparse_static.a
693 |
694 | Android
695 |
696 | libcusparse.so, libcusparse_static.a
697 |
698 | Component
699 |
700 | CUDA Linear Solver Library
701 |
702 | Windows
703 |
704 | cusolver.dll, cusolver.lib
705 |
706 | Mac OSX
707 |
708 | libcusolver.dylib, libcusolver_static.a
709 |
710 | Linux
711 |
712 | libcusolver.so, libcusolver_static.a
713 |
714 | Android
715 |
716 | libcusolver.so, libcusolver_static.a
717 |
718 | Component
719 |
720 | CUDA Random Number Generation Library
721 |
722 | Windows
723 |
724 | curand.dll, curand.lib
725 |
726 | Mac OSX
727 |
728 | libcurand.dylib, libcurand_static.a
729 |
730 | Linux
731 |
732 | libcurand.so, libcurand_static.a
733 |
734 | Android
735 |
736 | libcurand.so, libcurand_static.a
737 |
738 | Component
739 |
740 | NVIDIA Performance Primitives Library
741 |
742 | Windows
743 |
744 | nppc.dll, nppc.lib, nppial.dll, nppial.lib, nppicc.dll,
745 | nppicc.lib, nppicom.dll, nppicom.lib, nppidei.dll,
746 | nppidei.lib, nppif.dll, nppif.lib, nppig.dll, nppig.lib,
747 | nppim.dll, nppim.lib, nppist.dll, nppist.lib, nppisu.dll,
748 | nppisu.lib, nppitc.dll, nppitc.lib, npps.dll, npps.lib
749 |
750 | Mac OSX
751 |
752 | libnppc.dylib, libnppc_static.a, libnppial.dylib,
753 | libnppial_static.a, libnppicc.dylib, libnppicc_static.a,
754 | libnppicom.dylib, libnppicom_static.a, libnppidei.dylib,
755 | libnppidei_static.a, libnppif.dylib, libnppif_static.a,
756 | libnppig.dylib, libnppig_static.a, libnppim.dylib,
757 | libnppisu_static.a, libnppitc.dylib, libnppitc_static.a,
758 | libnpps.dylib, libnpps_static.a
759 |
760 | Linux
761 |
762 | libnppc.so, libnppc_static.a, libnppial.so,
763 | libnppial_static.a, libnppicc.so, libnppicc_static.a,
764 | libnppicom.so, libnppicom_static.a, libnppidei.so,
765 | libnppidei_static.a, libnppif.so, libnppif_static.a
766 | libnppig.so, libnppig_static.a, libnppim.so,
767 | libnppim_static.a, libnppist.so, libnppist_static.a,
768 | libnppisu.so, libnppisu_static.a, libnppitc.so
769 | libnppitc_static.a, libnpps.so, libnpps_static.a
770 |
771 | Android
772 |
773 | libnppc.so, libnppc_static.a, libnppial.so,
774 | libnppial_static.a, libnppicc.so, libnppicc_static.a,
775 | libnppicom.so, libnppicom_static.a, libnppidei.so,
776 | libnppidei_static.a, libnppif.so, libnppif_static.a
777 | libnppig.so, libnppig_static.a, libnppim.so,
778 | libnppim_static.a, libnppist.so, libnppist_static.a,
779 | libnppisu.so, libnppisu_static.a, libnppitc.so
780 | libnppitc_static.a, libnpps.so, libnpps_static.a
781 |
782 | Component
783 |
784 | NVIDIA JPEG Library
785 |
786 | Windows
787 |
788 | nvjpeg.lib, nvjpeg.dll
789 |
790 | Linux
791 |
792 | libnvjpeg.so, libnvjpeg_static.a
793 |
794 | Component
795 |
796 | Internal common library required for statically linking to
797 | cuBLAS, cuSPARSE, cuFFT, cuRAND, nvJPEG and NPP
798 |
799 | Mac OSX
800 |
801 | libculibos.a
802 |
803 | Linux
804 |
805 | libculibos.a
806 |
807 | Component
808 |
809 | NVIDIA Runtime Compilation Library and Header
810 |
811 | All
812 |
813 | nvrtc.h
814 |
815 | Windows
816 |
817 | nvrtc.dll, nvrtc-builtins.dll
818 |
819 | Mac OSX
820 |
821 | libnvrtc.dylib, libnvrtc-builtins.dylib
822 |
823 | Linux
824 |
825 | libnvrtc.so, libnvrtc-builtins.so
826 |
827 | Component
828 |
829 | NVIDIA Optimizing Compiler Library
830 |
831 | Windows
832 |
833 | nvvm.dll
834 |
835 | Mac OSX
836 |
837 | libnvvm.dylib
838 |
839 | Linux
840 |
841 | libnvvm.so
842 |
843 | Component
844 |
845 | NVIDIA Common Device Math Functions Library
846 |
847 | Windows
848 |
849 | libdevice.10.bc
850 |
851 | Mac OSX
852 |
853 | libdevice.10.bc
854 |
855 | Linux
856 |
857 | libdevice.10.bc
858 |
859 | Component
860 |
861 | CUDA Occupancy Calculation Header Library
862 |
863 | All
864 |
865 | cuda_occupancy.h
866 |
867 | Component
868 |
869 | CUDA Half Precision Headers
870 |
871 | All
872 |
873 | cuda_fp16.h, cuda_fp16.hpp
874 |
875 | Component
876 |
877 | CUDA Profiling Tools Interface (CUPTI) Library
878 |
879 | Windows
880 |
881 | cupti.dll
882 |
883 | Mac OSX
884 |
885 | libcupti.dylib
886 |
887 | Linux
888 |
889 | libcupti.so
890 |
891 | Component
892 |
893 | NVIDIA Tools Extension Library
894 |
895 | Windows
896 |
897 | nvToolsExt.dll, nvToolsExt.lib
898 |
899 | Mac OSX
900 |
901 | libnvToolsExt.dylib
902 |
903 | Linux
904 |
905 | libnvToolsExt.so
906 |
907 | Component
908 |
909 | NVIDIA CUDA Driver Libraries
910 |
911 | Linux
912 |
913 | libcuda.so, libnvidia-ptxjitcompiler.so
914 |
915 | Component
916 |
917 | NVIDIA CUDA File IO Libraries and Header
918 |
919 | All
920 |
921 | cufile.h
922 |
923 | Linux
924 |
925 | libcufile.so, libcufile_rdma.so, libcufile_static.a,
926 | libcufile_rdma_static.a
927 |
928 | The NVIDIA CUDA Driver Libraries are only distributable in
929 | applications that meet this criteria:
930 |
931 | 1. The application was developed starting from a NVIDIA CUDA
932 | container obtained from Docker Hub or the NVIDIA GPU
933 | Cloud, and
934 |
935 | 2. The resulting application is packaged as a Docker
936 | container and distributed to users on Docker Hub or the
937 | NVIDIA GPU Cloud only.
938 |
939 | In addition to the rights above, for parties that are
940 | developing software intended solely for use on Jetson
941 | development kits or Jetson modules, and running Linux for
942 | Tegra software, the following shall apply:
943 |
944 | * The SDK may be distributed in its entirety, as provided by
945 | NVIDIA, and without separation of its components, for you
946 | and/or your licensees to create software development kits
947 | for use only on the Jetson platform and running Linux for
948 | Tegra software.
949 |
950 |
951 | 2.7. Attachment B
952 |
953 |
954 | Additional Licensing Obligations
955 |
956 | The following third party components included in the SOFTWARE
957 | are licensed to Licensee pursuant to the following terms and
958 | conditions:
959 |
960 | 1. Licensee's use of the GDB third party component is
961 | subject to the terms and conditions of GNU GPL v3:
962 |
963 | This product includes copyrighted third-party software licensed
964 | under the terms of the GNU General Public License v3 ("GPL v3").
965 | All third-party software packages are copyright by their respective
966 | authors. GPL v3 terms and conditions are hereby incorporated into
967 | the Agreement by this reference: http://www.gnu.org/licenses/gpl.txt
968 |
969 | Consistent with these licensing requirements, the software
970 | listed below is provided under the terms of the specified
971 | open source software licenses. To obtain source code for
972 | software provided under licenses that require
973 | redistribution of source code, including the GNU General
974 | Public License (GPL) and GNU Lesser General Public License
975 | (LGPL), contact oss-requests@nvidia.com. This offer is
976 | valid for a period of three (3) years from the date of the
977 | distribution of this product by NVIDIA CORPORATION.
978 |
979 | Component License
980 | CUDA-GDB GPL v3
981 |
982 | 2. Licensee represents and warrants that any and all third
983 | party licensing and/or royalty payment obligations in
984 | connection with Licensee's use of the H.264 video codecs
985 | are solely the responsibility of Licensee.
986 |
987 | 3. Licensee's use of the Thrust library is subject to the
988 | terms and conditions of the Apache License Version 2.0.
989 | All third-party software packages are copyright by their
990 | respective authors. Apache License Version 2.0 terms and
991 | conditions are hereby incorporated into the Agreement by
992 | this reference.
993 | http://www.apache.org/licenses/LICENSE-2.0.html
994 |
995 | In addition, Licensee acknowledges the following notice:
996 | Thrust includes source code from the Boost Iterator,
997 | Tuple, System, and Random Number libraries.
998 |
999 | Boost Software License - Version 1.0 - August 17th, 2003
1000 | . . . .
1001 |
1002 | Permission is hereby granted, free of charge, to any person or
1003 | organization obtaining a copy of the software and accompanying
1004 | documentation covered by this license (the "Software") to use,
1005 | reproduce, display, distribute, execute, and transmit the Software,
1006 | and to prepare derivative works of the Software, and to permit
1007 | third-parties to whom the Software is furnished to do so, all
1008 | subject to the following:
1009 |
1010 | The copyright notices in the Software and this entire statement,
1011 | including the above license grant, this restriction and the following
1012 | disclaimer, must be included in all copies of the Software, in whole
1013 | or in part, and all derivative works of the Software, unless such
1014 | copies or derivative works are solely in the form of machine-executable
1015 | object code generated by a source language processor.
1016 |
1017 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1018 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1019 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
1020 | NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
1021 | ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
1022 | OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
1023 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1024 | OTHER DEALINGS IN THE SOFTWARE.
1025 |
1026 | 4. Licensee's use of the LLVM third party component is
1027 | subject to the following terms and conditions:
1028 |
1029 | ======================================================
1030 | LLVM Release License
1031 | ======================================================
1032 | University of Illinois/NCSA
1033 | Open Source License
1034 |
1035 | Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.
1036 | All rights reserved.
1037 |
1038 | Developed by:
1039 |
1040 | LLVM Team
1041 |
1042 | University of Illinois at Urbana-Champaign
1043 |
1044 | http://llvm.org
1045 |
1046 | Permission is hereby granted, free of charge, to any person obtaining a copy
1047 | of this software and associated documentation files (the "Software"), to
1048 | deal with the Software without restriction, including without limitation the
1049 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
1050 | sell copies of the Software, and to permit persons to whom the Software is
1051 | furnished to do so, subject to the following conditions:
1052 |
1053 | * Redistributions of source code must retain the above copyright notice,
1054 | this list of conditions and the following disclaimers.
1055 |
1056 | * Redistributions in binary form must reproduce the above copyright
1057 | notice, this list of conditions and the following disclaimers in the
1058 | documentation and/or other materials provided with the distribution.
1059 |
1060 | * Neither the names of the LLVM Team, University of Illinois at Urbana-
1061 | Champaign, nor the names of its contributors may be used to endorse or
1062 | promote products derived from this Software without specific prior
1063 | written permission.
1064 |
1065 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1066 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1067 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1068 | THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
1069 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1070 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1071 | DEALINGS WITH THE SOFTWARE.
1072 |
1073 | 5. Licensee's use of the PCRE third party component is
1074 | subject to the following terms and conditions:
1075 |
1076 | ------------
1077 | PCRE LICENCE
1078 | ------------
1079 | PCRE is a library of functions to support regular expressions whose syntax
1080 | and semantics are as close as possible to those of the Perl 5 language.
1081 | Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
1082 | specified below. The documentation for PCRE, supplied in the "doc"
1083 | directory, is distributed under the same terms as the software itself. The
1084 | basic library functions are written in C and are freestanding. Also
1085 | included in the distribution is a set of C++ wrapper functions, and a just-
1086 | in-time compiler that can be used to optimize pattern matching. These are
1087 | both optional features that can be omitted when the library is built.
1088 |
1089 | THE BASIC LIBRARY FUNCTIONS
1090 | ---------------------------
1091 | Written by: Philip Hazel
1092 | Email local part: ph10
1093 | Email domain: cam.ac.uk
1094 | University of Cambridge Computing Service,
1095 | Cambridge, England.
1096 | Copyright (c) 1997-2012 University of Cambridge
1097 | All rights reserved.
1098 |
1099 | PCRE JUST-IN-TIME COMPILATION SUPPORT
1100 | -------------------------------------
1101 | Written by: Zoltan Herczeg
1102 | Email local part: hzmester
1103 | Emain domain: freemail.hu
1104 | Copyright(c) 2010-2012 Zoltan Herczeg
1105 | All rights reserved.
1106 |
1107 | STACK-LESS JUST-IN-TIME COMPILER
1108 | --------------------------------
1109 | Written by: Zoltan Herczeg
1110 | Email local part: hzmester
1111 | Emain domain: freemail.hu
1112 | Copyright(c) 2009-2012 Zoltan Herczeg
1113 | All rights reserved.
1114 |
1115 | THE C++ WRAPPER FUNCTIONS
1116 | -------------------------
1117 | Contributed by: Google Inc.
1118 | Copyright (c) 2007-2012, Google Inc.
1119 | All rights reserved.
1120 |
1121 | THE "BSD" LICENCE
1122 | -----------------
1123 | Redistribution and use in source and binary forms, with or without
1124 | modification, are permitted provided that the following conditions are met:
1125 |
1126 | * Redistributions of source code must retain the above copyright notice,
1127 | this list of conditions and the following disclaimer.
1128 |
1129 | * Redistributions in binary form must reproduce the above copyright
1130 | notice, this list of conditions and the following disclaimer in the
1131 | documentation and/or other materials provided with the distribution.
1132 |
1133 | * Neither the name of the University of Cambridge nor the name of Google
1134 | Inc. nor the names of their contributors may be used to endorse or
1135 | promote products derived from this software without specific prior
1136 | written permission.
1137 |
1138 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1139 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1140 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1141 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
1142 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1143 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1144 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1145 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1146 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1147 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1148 | POSSIBILITY OF SUCH DAMAGE.
1149 |
1150 | 6. Some of the cuBLAS library routines were written by or
1151 | derived from code written by Vasily Volkov and are subject
1152 | to the Modified Berkeley Software Distribution License as
1153 | follows:
1154 |
1155 | Copyright (c) 2007-2009, Regents of the University of California
1156 |
1157 | All rights reserved.
1158 |
1159 | Redistribution and use in source and binary forms, with or without
1160 | modification, are permitted provided that the following conditions are
1161 | met:
1162 | * Redistributions of source code must retain the above copyright
1163 | notice, this list of conditions and the following disclaimer.
1164 | * Redistributions in binary form must reproduce the above
1165 | copyright notice, this list of conditions and the following
1166 | disclaimer in the documentation and/or other materials provided
1167 | with the distribution.
1168 | * Neither the name of the University of California, Berkeley nor
1169 | the names of its contributors may be used to endorse or promote
1170 | products derived from this software without specific prior
1171 | written permission.
1172 |
1173 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
1174 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1175 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1176 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1177 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1178 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1179 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1180 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1181 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1182 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1183 | POSSIBILITY OF SUCH DAMAGE.
1184 |
1185 | 7. Some of the cuBLAS library routines were written by or
1186 | derived from code written by Davide Barbieri and are
1187 | subject to the Modified Berkeley Software Distribution
1188 | License as follows:
1189 |
1190 | Copyright (c) 2008-2009 Davide Barbieri @ University of Rome Tor Vergata.
1191 |
1192 | All rights reserved.
1193 |
1194 | Redistribution and use in source and binary forms, with or without
1195 | modification, are permitted provided that the following conditions are
1196 | met:
1197 | * Redistributions of source code must retain the above copyright
1198 | notice, this list of conditions and the following disclaimer.
1199 | * Redistributions in binary form must reproduce the above
1200 | copyright notice, this list of conditions and the following
1201 | disclaimer in the documentation and/or other materials provided
1202 | with the distribution.
1203 | * The name of the author may not be used to endorse or promote
1204 | products derived from this software without specific prior
1205 | written permission.
1206 |
1207 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
1208 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1209 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1210 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1211 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1212 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1213 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1214 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1215 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1216 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1217 | POSSIBILITY OF SUCH DAMAGE.
1218 |
1219 | 8. Some of the cuBLAS library routines were derived from
1220 | code developed by the University of Tennessee and are
1221 | subject to the Modified Berkeley Software Distribution
1222 | License as follows:
1223 |
1224 | Copyright (c) 2010 The University of Tennessee.
1225 |
1226 | All rights reserved.
1227 |
1228 | Redistribution and use in source and binary forms, with or without
1229 | modification, are permitted provided that the following conditions are
1230 | met:
1231 | * Redistributions of source code must retain the above copyright
1232 | notice, this list of conditions and the following disclaimer.
1233 | * Redistributions in binary form must reproduce the above
1234 | copyright notice, this list of conditions and the following
1235 | disclaimer listed in this license in the documentation and/or
1236 | other materials provided with the distribution.
1237 | * Neither the name of the copyright holders nor the names of its
1238 | contributors may be used to endorse or promote products derived
1239 | from this software without specific prior written permission.
1240 |
1241 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1242 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1243 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1244 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1245 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1246 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1247 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1248 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1249 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1250 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1251 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1252 |
1253 | 9. Some of the cuBLAS library routines were written by or
1254 | derived from code written by Jonathan Hogg and are subject
1255 | to the Modified Berkeley Software Distribution License as
1256 | follows:
1257 |
1258 | Copyright (c) 2012, The Science and Technology Facilities Council (STFC).
1259 |
1260 | All rights reserved.
1261 |
1262 | Redistribution and use in source and binary forms, with or without
1263 | modification, are permitted provided that the following conditions are
1264 | met:
1265 | * Redistributions of source code must retain the above copyright
1266 | notice, this list of conditions and the following disclaimer.
1267 | * Redistributions in binary form must reproduce the above
1268 | copyright notice, this list of conditions and the following
1269 | disclaimer in the documentation and/or other materials provided
1270 | with the distribution.
1271 | * Neither the name of the STFC nor the names of its contributors
1272 | may be used to endorse or promote products derived from this
1273 | software without specific prior written permission.
1274 |
1275 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1276 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1277 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1278 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE STFC BE
1279 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1280 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1281 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
1282 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
1283 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
1284 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
1285 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1286 |
1287 | 10. Some of the cuBLAS library routines were written by or
1288 | derived from code written by Ahmad M. Abdelfattah, David
1289 | Keyes, and Hatem Ltaief, and are subject to the Apache
1290 | License, Version 2.0, as follows:
1291 |
1292 | -- (C) Copyright 2013 King Abdullah University of Science and Technology
1293 | Authors:
1294 | Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa)
1295 | David Keyes (david.keyes@kaust.edu.sa)
1296 | Hatem Ltaief (hatem.ltaief@kaust.edu.sa)
1297 |
1298 | Redistribution and use in source and binary forms, with or without
1299 | modification, are permitted provided that the following conditions
1300 | are met:
1301 |
1302 | * Redistributions of source code must retain the above copyright
1303 | notice, this list of conditions and the following disclaimer.
1304 | * Redistributions in binary form must reproduce the above copyright
1305 | notice, this list of conditions and the following disclaimer in the
1306 | documentation and/or other materials provided with the distribution.
1307 | * Neither the name of the King Abdullah University of Science and
1308 | Technology nor the names of its contributors may be used to endorse
1309 | or promote products derived from this software without specific prior
1310 | written permission.
1311 |
1312 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1313 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1314 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1315 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1316 | HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1317 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1318 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1319 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1320 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1321 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1322 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
1323 |
1324 | 11. Some of the cuSPARSE library routines were written by or
1325 | derived from code written by Li-Wen Chang and are subject
1326 | to the NCSA Open Source License as follows:
1327 |
1328 | Copyright (c) 2012, University of Illinois.
1329 |
1330 | All rights reserved.
1331 |
1332 | Developed by: IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu
1333 |
1334 | Permission is hereby granted, free of charge, to any person obtaining
1335 | a copy of this software and associated documentation files (the
1336 | "Software"), to deal with the Software without restriction, including
1337 | without limitation the rights to use, copy, modify, merge, publish,
1338 | distribute, sublicense, and/or sell copies of the Software, and to
1339 | permit persons to whom the Software is furnished to do so, subject to
1340 | the following conditions:
1341 | * Redistributions of source code must retain the above copyright
1342 | notice, this list of conditions and the following disclaimer.
1343 | * Redistributions in binary form must reproduce the above
1344 | copyright notice, this list of conditions and the following
1345 | disclaimers in the documentation and/or other materials provided
1346 | with the distribution.
1347 | * Neither the names of IMPACT Group, University of Illinois, nor
1348 | the names of its contributors may be used to endorse or promote
1349 | products derived from this Software without specific prior
1350 | written permission.
1351 |
1352 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1353 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1354 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1355 | NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
1356 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1357 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
1358 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
1359 | SOFTWARE.
1360 |
1361 | 12. Some of the cuRAND library routines were written by or
1362 | derived from code written by Mutsuo Saito and Makoto
1363 | Matsumoto and are subject to the following license:
1364 |
1365 | Copyright (c) 2009, 2010 Mutsuo Saito, Makoto Matsumoto and Hiroshima
1366 | University. All rights reserved.
1367 |
1368 | Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
1369 | University and University of Tokyo. All rights reserved.
1370 |
1371 | Redistribution and use in source and binary forms, with or without
1372 | modification, are permitted provided that the following conditions are
1373 | met:
1374 | * Redistributions of source code must retain the above copyright
1375 | notice, this list of conditions and the following disclaimer.
1376 | * Redistributions in binary form must reproduce the above
1377 | copyright notice, this list of conditions and the following
1378 | disclaimer in the documentation and/or other materials provided
1379 | with the distribution.
1380 | * Neither the name of the Hiroshima University nor the names of
1381 | its contributors may be used to endorse or promote products
1382 | derived from this software without specific prior written
1383 | permission.
1384 |
1385 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1386 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1387 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1388 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1389 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1390 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1391 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1392 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1393 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1394 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1395 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1396 |
1397 | 13. Some of the cuRAND library routines were derived from
1398 | code developed by D. E. Shaw Research and are subject to
1399 | the following license:
1400 |
1401 | Copyright 2010-2011, D. E. Shaw Research.
1402 |
1403 | All rights reserved.
1404 |
1405 | Redistribution and use in source and binary forms, with or without
1406 | modification, are permitted provided that the following conditions are
1407 | met:
1408 | * Redistributions of source code must retain the above copyright
1409 | notice, this list of conditions, and the following disclaimer.
1410 | * Redistributions in binary form must reproduce the above
1411 | copyright notice, this list of conditions, and the following
1412 | disclaimer in the documentation and/or other materials provided
1413 | with the distribution.
1414 | * Neither the name of D. E. Shaw Research nor the names of its
1415 | contributors may be used to endorse or promote products derived
1416 | from this software without specific prior written permission.
1417 |
1418 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1419 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1420 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1421 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1422 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1423 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1424 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1425 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1426 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1427 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1428 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1429 |
1430 | 14. Some of the Math library routines were written by or
1431 | derived from code developed by Norbert Juffa and are
1432 | subject to the following license:
1433 |
1434 | Copyright (c) 2015-2017, Norbert Juffa
1435 | All rights reserved.
1436 |
1437 | Redistribution and use in source and binary forms, with or without
1438 | modification, are permitted provided that the following conditions
1439 | are met:
1440 |
1441 | 1. Redistributions of source code must retain the above copyright
1442 | notice, this list of conditions and the following disclaimer.
1443 |
1444 | 2. Redistributions in binary form must reproduce the above copyright
1445 | notice, this list of conditions and the following disclaimer in the
1446 | documentation and/or other materials provided with the distribution.
1447 |
1448 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1449 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1450 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1451 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1452 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1453 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1454 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1455 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1456 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1457 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1458 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1459 |
1460 | 15. Licensee's use of the lz4 third party component is
1461 | subject to the following terms and conditions:
1462 |
1463 | Copyright (C) 2011-2013, Yann Collet.
1464 | BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
1465 |
1466 | Redistribution and use in source and binary forms, with or without
1467 | modification, are permitted provided that the following conditions are
1468 | met:
1469 |
1470 | * Redistributions of source code must retain the above copyright
1471 | notice, this list of conditions and the following disclaimer.
1472 | * Redistributions in binary form must reproduce the above
1473 | copyright notice, this list of conditions and the following disclaimer
1474 | in the documentation and/or other materials provided with the
1475 | distribution.
1476 |
1477 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1478 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1479 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1480 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1481 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1482 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1483 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1484 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1485 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1486 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1487 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1488 |
1489 | 16. The NPP library uses code from the Boost Math Toolkit,
1490 | and is subject to the following license:
1491 |
1492 | Boost Software License - Version 1.0 - August 17th, 2003
1493 | . . . .
1494 |
1495 | Permission is hereby granted, free of charge, to any person or
1496 | organization obtaining a copy of the software and accompanying
1497 | documentation covered by this license (the "Software") to use,
1498 | reproduce, display, distribute, execute, and transmit the Software,
1499 | and to prepare derivative works of the Software, and to permit
1500 | third-parties to whom the Software is furnished to do so, all
1501 | subject to the following:
1502 |
1503 | The copyright notices in the Software and this entire statement,
1504 | including the above license grant, this restriction and the following
1505 | disclaimer, must be included in all copies of the Software, in whole
1506 | or in part, and all derivative works of the Software, unless such
1507 | copies or derivative works are solely in the form of machine-executable
1508 | object code generated by a source language processor.
1509 |
1510 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1511 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1512 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
1513 | NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
1514 | ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
1515 | OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
1516 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1517 | OTHER DEALINGS IN THE SOFTWARE.
1518 |
1519 | 17. Portions of the Nsight Eclipse Edition is subject to the
1520 | following license:
1521 |
1522 | The Eclipse Foundation makes available all content in this plug-in
1523 | ("Content"). Unless otherwise indicated below, the Content is provided
1524 | to you under the terms and conditions of the Eclipse Public License
1525 | Version 1.0 ("EPL"). A copy of the EPL is available at http://
1526 | www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program"
1527 | will mean the Content.
1528 |
1529 | If you did not receive this Content directly from the Eclipse
1530 | Foundation, the Content is being redistributed by another party
1531 | ("Redistributor") and different terms and conditions may apply to your
1532 | use of any object code in the Content. Check the Redistributor's
1533 | license that was provided with the Content. If no such license exists,
1534 | contact the Redistributor. Unless otherwise indicated below, the terms
1535 | and conditions of the EPL still apply to any source code in the
1536 | Content and such source code may be obtained at http://www.eclipse.org.
1537 |
1538 | 18. Some of the cuBLAS library routines uses code from
1539 | OpenAI, which is subject to the following license:
1540 |
1541 | License URL
1542 | https://github.com/openai/openai-gemm/blob/master/LICENSE
1543 |
1544 | License Text
1545 | The MIT License
1546 |
1547 | Copyright (c) 2016 OpenAI (http://openai.com), 2016 Google Inc.
1548 |
1549 | Permission is hereby granted, free of charge, to any person obtaining a copy
1550 | of this software and associated documentation files (the "Software"), to deal
1551 | in the Software without restriction, including without limitation the rights
1552 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1553 | copies of the Software, and to permit persons to whom the Software is
1554 | furnished to do so, subject to the following conditions:
1555 |
1556 | The above copyright notice and this permission notice shall be included in
1557 | all copies or substantial portions of the Software.
1558 |
1559 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1560 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1561 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1562 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1563 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1564 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1565 | THE SOFTWARE.
1566 |
1567 | 19. Licensee's use of the Visual Studio Setup Configuration
1568 | Samples is subject to the following license:
1569 |
1570 | The MIT License (MIT)
1571 | Copyright (C) Microsoft Corporation. All rights reserved.
1572 |
1573 | Permission is hereby granted, free of charge, to any person
1574 | obtaining a copy of this software and associated documentation
1575 | files (the "Software"), to deal in the Software without restriction,
1576 | including without limitation the rights to use, copy, modify, merge,
1577 | publish, distribute, sublicense, and/or sell copies of the Software,
1578 | and to permit persons to whom the Software is furnished to do so,
1579 | subject to the following conditions:
1580 |
1581 | The above copyright notice and this permission notice shall be included
1582 | in all copies or substantial portions of the Software.
1583 |
1584 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1585 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1586 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1587 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1588 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1589 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1590 |
1591 | 20. Licensee's use of linmath.h header for CPU functions for
1592 | GL vector/matrix operations from lunarG is subject to the
1593 | Apache License Version 2.0.
1594 |
1595 | 21. The DX12-CUDA sample uses the d3dx12.h header, which is
1596 | subject to the MIT license .
1597 |
1598 | -----------------
1599 |
--------------------------------------------------------------------------------
/bin/x86_64_Linux/cuda-checkpoint:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/bin/x86_64_Linux/cuda-checkpoint
--------------------------------------------------------------------------------
/images/app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/app.png
--------------------------------------------------------------------------------
/images/copy-in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/copy-in.png
--------------------------------------------------------------------------------
/images/copy-out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/copy-out.png
--------------------------------------------------------------------------------
/images/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/lock.png
--------------------------------------------------------------------------------
/images/moon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/moon.png
--------------------------------------------------------------------------------
/images/off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/off.png
--------------------------------------------------------------------------------
/images/on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/on.png
--------------------------------------------------------------------------------
/images/proc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/proc.png
--------------------------------------------------------------------------------
/images/sun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/sun.png
--------------------------------------------------------------------------------
/images/unlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/unlock.png
--------------------------------------------------------------------------------
/images/vm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/cuda-checkpoint/6ec728aff032c18c9fb0794a272d94c6adcce508/images/vm.png
--------------------------------------------------------------------------------
/src/counter.cu:
--------------------------------------------------------------------------------
1 | /*
2 | * SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3 | * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4 | *
5 | * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6 | * property and proprietary rights in and to this material, related
7 | * documentation and any modifications thereto. Any use, reproduction,
8 | * disclosure or distribution of this material and related documentation
9 | * without an express license agreement from NVIDIA CORPORATION or
10 | * its affiliates is strictly prohibited.
11 | */
12 |
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 |
19 | #define PORT 10000
20 |
21 | __device__ int counter = 100;
22 | __global__ void increment()
23 | {
24 | counter++;
25 | }
26 |
27 | int main(void)
28 | {
29 | cudaFree(0);
30 |
31 | int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
32 | sockaddr_in addr = {AF_INET, htons(PORT), inet_addr("127.0.0.1")};
33 | bind(sock, (sockaddr *)&addr, sizeof addr);
34 |
35 | while (true) {
36 | char buffer[16] = {0};
37 | sockaddr_in peer = {0};
38 | socklen_t inetSize = sizeof peer;
39 | int hCounter = 0;
40 |
41 | recvfrom(sock, buffer, sizeof buffer, 0, (sockaddr *)&peer, &inetSize);
42 |
43 | increment<<<1,1>>>();
44 | cudaMemcpyFromSymbol(&hCounter, counter, sizeof counter);
45 |
46 | size_t bytes = sprintf(buffer, "%d\n", hCounter);
47 | sendto(sock, buffer, bytes, 0, (sockaddr *)&peer, inetSize);
48 | }
49 | return 0;
50 | }
51 |
--------------------------------------------------------------------------------
/src/example.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4 | # SPDX-License-Identifier: LicenseRef-NvidiaProprietary
5 | #
6 | # NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
7 | # property and proprietary rights in and to this material, related
8 | # documentation and any modifications thereto. Any use, reproduction,
9 | # disclosure or distribution of this material and related documentation
10 | # without an express license agreement from NVIDIA CORPORATION or
11 | # its affiliates is strictly prohibited.
12 |
13 | set -v
14 |
15 | # run the counter application
16 | ./counter &
17 |
18 | #get the PID of counter
19 | PID=$!
20 |
21 | # wait for counter to bind to the UDP socket
22 | sleep 1
23 |
24 | #send a packet
25 | echo hello | nc -u localhost 10000 -W 1
26 |
27 | # confirm that counter is using the GPU
28 | nvidia-smi --query --display=PIDS | grep $PID
29 |
30 | # suspend CUDA
31 | cuda-checkpoint --toggle --pid $PID
32 |
33 | # confirm that counter is no longer using the GPU
34 | nvidia-smi --query --display=PIDS | grep $PID
35 |
36 | # create the directory which will hold the checkpoint image
37 | mkdir -p demo
38 |
39 | # checkpoint counter
40 | criu dump --shell-job --images-dir demo --tree $PID
41 |
42 | # confirm that counter is no longer running
43 | ps --pid $PID
44 |
45 | # restore counter
46 | criu restore --shell-job --restore-detached --images-dir demo
47 |
48 | # resume CUDA
49 | cuda-checkpoint --toggle --pid $PID
50 |
51 | # send another packet
52 | echo hello | nc -u localhost 10000 -W 1
53 |
54 | kill $PID
55 |
--------------------------------------------------------------------------------
/src/r570-features.c:
--------------------------------------------------------------------------------
1 | /*
2 | * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3 | * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4 | *
5 | * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6 | * property and proprietary rights in and to this material, related
7 | * documentation and any modifications thereto. Any use, reproduction,
8 | * disclosure or distribution of this material and related documentation
9 | * without an express license agreement from NVIDIA CORPORATION or
10 | * its affiliates is strictly prohibited.
11 | *
12 | *
13 | * Checkpoint and Restore Demo
14 | * Requires display driver 570 or higher and CRIU 4.0 or higher
15 | *
16 | * A parent process launches a child.
17 | * The child initializes CUDA and NVML then the parent checkpoints and restores the child.
18 | * The child continues to use CUDA and NVML after it is restored.
19 | *
20 | * Build with the CUDA 12.8 toolkit as follows:
21 | * gcc -I /usr/local/cuda-12.8/include r570-features.c -o r570-features -lcuda -lnvidia-ml
22 | */
23 |
24 | #include
25 | #include
26 | #include
27 | #include
28 |
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 |
35 | #include
36 | #include
37 |
38 | #define CHECK(x) assert(x)
39 | #define CHECK_EQ(x, y) CHECK((x) == (y))
40 | #define CHECK_OK(x) CHECK_EQ(x, 0)
41 |
42 | void runParent(pid_t child, int sock, int childSock, const char *libDir);
43 | void checkpointAndRestore(pid_t child, int childSock, const char *libDir);
44 | void runChild(int sock);
45 | void systemf(const char *fmt, ...);
46 |
47 | static char scratch = '\0';
48 |
49 | int main(int argc, char **argv)
50 | {
51 | if (argc != 2) {
52 | printf("Usage: %s \n", argv[0]);
53 | exit(1);
54 | }
55 |
56 | // Do some sanity checks before starting
57 | const char *libDir = argv[1];
58 | systemf("ls %s/cuda_plugin.so", libDir);
59 | systemf("which cuda-checkpoint");
60 | systemf("which criu");
61 |
62 | int socks[2];
63 | CHECK_OK(socketpair(AF_UNIX, SOCK_STREAM, 0, socks));
64 |
65 | pid_t child = fork();
66 | if (child == 0) {
67 | CHECK_OK(close(socks[1]));
68 | runChild(socks[0]);
69 | exit(0);
70 | }
71 |
72 | runParent(child, socks[1], socks[0], libDir);
73 | return 0;
74 | }
75 |
76 | void runParent(pid_t child, int sock, int childSock, const char *libDir)
77 | {
78 | // wait for checkpoint request
79 | CHECK_EQ(read(sock, &scratch, 1), 1);
80 |
81 | // confirm with the CUDA driver that CUDA is running in the child
82 | CUprocessState state;
83 | CHECK_OK(cuCheckpointProcessGetState(child, &state));
84 | CHECK_EQ(state, CU_PROCESS_STATE_RUNNING);
85 |
86 | checkpointAndRestore(child, childSock, libDir);
87 |
88 | // unblock child upon restore
89 | CHECK_EQ(write(sock, &scratch, 1), 1);
90 |
91 | // wait for child to finish up
92 | CHECK_EQ(read(sock, &scratch, 1), 1);
93 | }
94 |
95 | void checkpointAndRestore(pid_t child, int childSock, const char *libDir)
96 | {
97 | char imagesDir[] = "images-dir-XXXXXX";
98 | mkdtemp(imagesDir);
99 |
100 | struct stat sockInfo;
101 | CHECK_OK(fstat(childSock, &sockInfo));
102 |
103 | systemf("criu dump --shell-job --images-dir %s --libdir %s --ext-unix-sk=%ld --tree %d",
104 | imagesDir,
105 | libDir,
106 | sockInfo.st_ino,
107 | child);
108 |
109 | CHECK_EQ(waitpid(child, NULL, 0), child);
110 |
111 | systemf("criu restore --shell-job --images-dir %s --libdir %s --inherit-fd fd[%d]:socket:[%ld] --restore-detached",
112 | imagesDir,
113 | libDir,
114 | childSock,
115 | sockInfo.st_ino);
116 | }
117 |
118 | void runChild(int sock)
119 | {
120 | CHECK_OK(cuInit(0));
121 | CHECK_OK(nvmlInit());
122 |
123 | CUdevice cuDev;
124 | CHECK_OK(cuDeviceGet(&cuDev, 0));
125 |
126 | int pci[3];
127 | CHECK_OK(cuDeviceGetAttribute(&pci[0], CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID, cuDev));
128 | CHECK_OK(cuDeviceGetAttribute(&pci[1], CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, cuDev));
129 | CHECK_OK(cuDeviceGetAttribute(&pci[2], CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, cuDev));
130 |
131 | char busId[64];
132 | sprintf(busId, "%08X:%02X:%02X.0", pci[0], pci[1], pci[2]);
133 |
134 | nvmlDevice_t mlDev = 0;
135 | CHECK_OK(nvmlDeviceGetHandleByPciBusId(busId, &mlDev));
136 |
137 | nvmlMemory_t before = {0};
138 | CHECK_OK(nvmlDeviceGetMemoryInfo(mlDev, &before));
139 |
140 | CUcontext ctx;
141 | CUdeviceptr ptr;
142 | CHECK_OK(cuDevicePrimaryCtxRetain(&ctx, cuDev));
143 | CHECK_OK(cuCtxSetCurrent(ctx));
144 |
145 | const int magic = 0x12345678;
146 | CHECK_OK(cuMemAlloc(&ptr, sizeof magic));
147 | CHECK_OK(cuMemcpyHtoD(ptr, &magic, sizeof magic));
148 |
149 | // request checkpoint and wait for restore
150 | CHECK_EQ(write(sock, &scratch, 1), 1);
151 | CHECK_EQ(read(sock, &scratch, 1), 1);
152 |
153 | int value = 0;
154 | CHECK_OK(cuMemcpyDtoH(&value, ptr, sizeof value));
155 | CHECK_EQ(value, magic);
156 |
157 | nvmlMemory_t after = {0};
158 | CHECK_OK(nvmlDeviceGetMemoryInfo(mlDev, &after));
159 | CHECK(before.free > after.free);
160 |
161 | // unblock parent
162 | printf("SUCCESS\n");
163 | CHECK_EQ(write(sock, &scratch, 1), 1);
164 | }
165 |
166 | void systemf(const char *fmt, ...)
167 | {
168 | char cmd[256];
169 | va_list lst;
170 | va_start(lst, fmt);
171 | vsprintf(cmd, fmt, lst);
172 | va_end(lst);
173 | printf("> %s\n", cmd);
174 | int status = system(cmd);
175 | CHECK(WIFEXITED(status) && WEXITSTATUS(status) == 0);
176 | }
177 |
--------------------------------------------------------------------------------