From 79b6ba52e8c0a0f4e2f1c93f1b233ce4dee4192b Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 20 May 2019 13:03:26 +0300 Subject: [PATCH 1/3] [HIPIFY][doc] Update README.md + Populate supported CUDA and LLVM releases with hyperlinks [ROCm/hip commit: 60609b07bb58fece6614bf6be912c8e73804b9a9] --- projects/hip/hipify-clang/README.md | 44 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/projects/hip/hipify-clang/README.md b/projects/hip/hipify-clang/README.md index 393fd4fc3d..9ec0a7b9e7 100644 --- a/projects/hip/hipify-clang/README.md +++ b/projects/hip/hipify-clang/README.md @@ -32,30 +32,30 @@ ## Dependencies `hipify-clang` requires: -1. **LLVM+CLANG** of at least version 3.8.0; the latest stable and recommended release: **6.0.1 on Windows**, and **8.0.0 on Linux**. +1. [**LLVM+CLANG**](http://releases.llvm.org) of at least version [3.8.0](http://releases.llvm.org/download.html#3.8.0); the latest stable and recommended release: [**6.0.1**](http://releases.llvm.org/download.html#6.0.1) on **Windows**, and [**8.0.0**](http://releases.llvm.org/download.html#8.0.0) on **Linux**. -2. **CUDA** at least version 7.0, the latest supported version is **9.0 on Windows**, and **10.0 on Linux**. +2. **CUDA** at least version [7.0](https://developer.nvidia.com/cuda-toolkit-70), the latest supported version is [**9.0**](https://developer.nvidia.com/cuda-90-download-archive) on **Windows**, and [**10.0**](https://developer.nvidia.com/cuda-10.0-download-archive) on **Linux**. -If the target CUDA is 9.1, 9.2 or 10.0, to work on Windows you may apply patches*: [for LLVM 7.0.0](patches/patch_for_clang_7.0.0_bug_38811.zip), [for LLVM 7.0.1](patches/patch_for_clang_7.0.1_bug_38811.zip), [for LLVM 8.0.0](patches/patch_for_clang_8.0.0_bug_38811.zip). +If the target CUDA is [9.1](https://developer.nvidia.com/cuda-91-download-archive), [9.2](https://developer.nvidia.com/cuda-92-download-archive) or [10.0](https://developer.nvidia.com/cuda-10.0-download-archive), to work on Windows you may apply patches*: [for LLVM 7.0.0](patches/patch_for_clang_7.0.0_bug_38811.zip), [for LLVM 7.0.1](patches/patch_for_clang_7.0.1_bug_38811.zip), [for LLVM 8.0.0](patches/patch_for_clang_8.0.0_bug_38811.zip). -| **LLVM release version** | **CUDA latest supported version** | **Windows** | **Linux** | -|:------------------------:|:---------------------------------:|:------------:|:---------:| -| 3.8.0 | 7.5 | + | + | -| 3.8.1 | 7.5 | + | + | -| 3.9.0 | 7.5 | + | + | -| 3.9.1 | 7.5 | + | + | -| 4.0.0 | 8.0 | + | + | -| 4.0.1 | 8.0 | + | + | -| 5.0.0 | 8.0 | + | + | -| 5.0.1 | 8.0 | + | + | -| 5.0.2 | 8.0 | + | + | -| 6.0.0 | 9.0 | + | + | -| **6.0.1** | **9.0** | +
**LATEST STABLE RELEASE** | + | -| 7.0.0 | 9.2 | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.0.0_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | -| 7.0.1 | 9.2 | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.0.1_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | -| 7.1.0 | 9.2 (?) | -
LLVM 7.1.0
is not yet released | -
LLVM 7.1.0
is not yet released | -| **8.0.0** | **10.0** | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_8.0.0_bug_38811.zip)*
| +
**LATEST STABLE RELEASE** | -| 8.0.1 | 10.1 (?) | -
LLVM 8.0.1
is not yet released | -
LLVM 8.0.1
is not yet released | +| **LLVM release version** | **CUDA latest supported version** | **Windows** | **Linux** | +|:----------------------------------------------------------:|:-------------------------------------------------------------------:|:------------:|:---------:| +| [3.8.0](http://releases.llvm.org/download.html#3.8.0) | [7.5](https://developer.nvidia.com/cuda-75-downloads-archive) | + | + | +| [3.8.1](http://releases.llvm.org/download.html#3.8.1) | [7.5](https://developer.nvidia.com/cuda-75-downloads-archive) | + | + | +| [3.9.0](http://releases.llvm.org/download.html#3.9.0) | [7.5](https://developer.nvidia.com/cuda-75-downloads-archive) | + | + | +| [3.9.1](http://releases.llvm.org/download.html#3.9.1) | [7.5](https://developer.nvidia.com/cuda-75-downloads-archive) | + | + | +| [4.0.0](http://releases.llvm.org/download.html#4.0.0) | [8.0](https://developer.nvidia.com/cuda-80-ga2-download-archive) | + | + | +| [4.0.1](http://releases.llvm.org/download.html#4.0.1) | [8.0](https://developer.nvidia.com/cuda-80-ga2-download-archive) | + | + | +| [5.0.0](http://releases.llvm.org/download.html#5.0.0) | [8.0](https://developer.nvidia.com/cuda-80-ga2-download-archive) | + | + | +| [5.0.1](http://releases.llvm.org/download.html#5.0.1) | [8.0](https://developer.nvidia.com/cuda-80-ga2-download-archive) | + | + | +| [5.0.2](http://releases.llvm.org/download.html#5.0.2) | [8.0](https://developer.nvidia.com/cuda-80-ga2-download-archive) | + | + | +| [6.0.0](http://releases.llvm.org/download.html#6.0.0) | [9.0](https://developer.nvidia.com/cuda-90-download-archive) | + | + | +| [**6.0.1**](http://releases.llvm.org/download.html#6.0.1) | [**9.0**](https://developer.nvidia.com/cuda-90-download-archive) | +
**LATEST STABLE RELEASE** | + | +| [7.0.0](http://releases.llvm.org/download.html#7.0.0) | [9.2](https://developer.nvidia.com/cuda-92-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.0.0_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | +| [7.0.1](http://releases.llvm.org/download.html#7.0.1) | [9.2](https://developer.nvidia.com/cuda-92-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.0.1_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | +| 7.1.0 | 9.2 (?) | -
LLVM 7.1.0
is not yet released | -
LLVM 7.1.0
is not yet released | +| [**8.0.0**](http://releases.llvm.org/download.html#8.0.0) | [**10.0**](https://developer.nvidia.com/cuda-10.0-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_8.0.0_bug_38811.zip)*
| +
**LATEST STABLE RELEASE** | +| 8.0.1 | 10.1 (?) | -
LLVM 8.0.1
is not yet released | -
LLVM 8.0.1
is not yet released | `*` Download the patch and unpack it into your LLVM distributive directory; a few header files will be overwritten; rebuilding of LLVM is not needed. @@ -317,7 +317,7 @@ LLVM 7.0.0 - 8.0.0 (with patch*), CUDA 7.5 - 10.0, cudnn-7.0.5.15 - cudnn-7.5.1. Build system for the above configurations: -Python 3.6 (min), cmake 3.12.3 (min), Visual Studio 15.5 2017 (min). +Python 3.6 (min), cmake 3.12.3 (min), Visual Studio 15.5.2 2017 - 16.0.4 2019. Here is an example of building `hipify-clang` with testing support on `Windows 10` by `Visual Studio 15 2017`: From 87aa8881750b99e3e0bb4ee9d25706fb2a2b0248 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 20 May 2019 17:16:11 +0300 Subject: [PATCH 2/3] [HIPIFY][tests] Add reverse engineered HIP sample "peer2peer" + Fix typo in sample "stream" [ROCm/hip commit: 29d8e10112418dbd551b1c5803c58cc68ab8b53e] --- .../samples/2_Cookbook/7_streams/stream.cpp | 2 +- .../2_Cookbook/8_peer2peer/peer2peer.cpp | 225 ++++++++++++++++++ 2 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/8_peer2peer/peer2peer.cpp diff --git a/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/7_streams/stream.cpp b/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/7_streams/stream.cpp index 9da1dca9af..b7fadbf936 100644 --- a/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/7_streams/stream.cpp +++ b/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/7_streams/stream.cpp @@ -37,7 +37,7 @@ using namespace std; __global__ void matrixTranspose_static_shared(float* out, float* in, const int width) { - // CHECK-NOT: HIP_DYNAMIC_SHARED(int, sharedMem); + // CHECK-NOT: HIP_DYNAMIC_SHARED(float, sharedMem); // CHECK: __shared__ float sharedMem[WIDTH * WIDTH]; __shared__ float sharedMem[WIDTH * WIDTH]; diff --git a/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/8_peer2peer/peer2peer.cpp b/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/8_peer2peer/peer2peer.cpp new file mode 100644 index 0000000000..be2ec7399d --- /dev/null +++ b/projects/hip/tests/hipify-clang/unit_tests/samples/2_Cookbook/8_peer2peer/peer2peer.cpp @@ -0,0 +1,225 @@ +// RUN: %run_test hipify "%s" "%t" %hipify_args %clang_args +/* +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#include +// CHECK: #include +#include +#include +#define WIDTH 32 + +#define NUM (WIDTH * WIDTH) + +#define THREADS_PER_BLOCK_X 4 +#define THREADS_PER_BLOCK_Y 4 +#define THREADS_PER_BLOCK_Z 1 + +using namespace std; + +#define KNRM "\x1B[0m" +#define KRED "\x1B[31m" + +#define failed(...) \ + printf("%serror: ", KRED); \ + printf(__VA_ARGS__); \ + printf("\n"); \ + printf("error: TEST FAILED\n%s", KNRM); \ + abort(); + +// CHECK: hipError_t localError = error; +// CHECK: if ((localError != hipSuccess) && (localError != hipErrorPeerAccessAlreadyEnabled) && +// CHECK: (localError != hipErrorPeerAccessNotEnabled )) { +// CHECK: printf("%serror: '%s'(%d) from %s at %s:%d%s\n", KRED, hipGetErrorString(localError), +#define CUDACHECK(error) \ + { \ + cudaError_t localError = error; \ + if ((localError != cudaSuccess) && (localError != cudaErrorPeerAccessAlreadyEnabled) && \ + (localError != cudaErrorPeerAccessNotEnabled )) { \ + printf("%serror: '%s'(%d) from %s at %s:%d%s\n", KRED, cudaGetErrorString(localError), \ + localError, #error, __FILE__, __LINE__, KNRM); \ + failed("API returned error code."); \ + } \ + } + +void checkPeer2PeerSupport() { + int gpuCount; + int canAccessPeer; + // CHECK: CUDACHECK(hipGetDeviceCount(&gpuCount)); + CUDACHECK(cudaGetDeviceCount(&gpuCount)); + for (int currentGpu = 0; currentGpu < gpuCount; currentGpu++) { + // CHECK: CUDACHECK(hipSetDevice(currentGpu)); + CUDACHECK(cudaSetDevice(currentGpu)); + for (int peerGpu = 0; peerGpu < currentGpu; peerGpu++) { + if (currentGpu != peerGpu) { + // CHECK: CUDACHECK(hipDeviceCanAccessPeer(&canAccessPeer, currentGpu, peerGpu)); + CUDACHECK(cudaDeviceCanAccessPeer(&canAccessPeer, currentGpu, peerGpu)); + printf("currentGpu#%d canAccessPeer: peerGpu#%d=%d\n", currentGpu, peerGpu, + canAccessPeer); + } + // CHECK: CUDACHECK(hipSetDevice(peerGpu)); + CUDACHECK(cudaSetDevice(peerGpu)); + // CHECK: CUDACHECK(hipDeviceReset()); + CUDACHECK(cudaDeviceReset()); + } + // CHECK: CUDACHECK(hipSetDevice(currentGpu)); + CUDACHECK(cudaSetDevice(currentGpu)); + // CHECK: CUDACHECK(hipDeviceReset()); + CUDACHECK(cudaDeviceReset()); + } +} + +void enablePeer2Peer(int currentGpu, int peerGpu) { + int canAccessPeer; + // Must be on a multi-gpu system: + assert(currentGpu != peerGpu); + // CHECK: CUDACHECK(hipSetDevice(currentGpu)); + CUDACHECK(cudaSetDevice(currentGpu)); + // CHECK: hipDeviceCanAccessPeer(&canAccessPeer, currentGpu, peerGpu); + cudaDeviceCanAccessPeer(&canAccessPeer, currentGpu, peerGpu); + if (canAccessPeer == 1) { + // CHECK: CUDACHECK(hipDeviceEnablePeerAccess(peerGpu, 0)); + CUDACHECK(cudaDeviceEnablePeerAccess(peerGpu, 0)); + } else + printf("peer2peer transfer not possible between the selected gpu devices"); +} + +void disablePeer2Peer(int currentGpu, int peerGpu) { + int canAccessPeer; + // Must be on a multi-gpu system: + assert(currentGpu != peerGpu); + // CHECK: CUDACHECK(hipSetDevice(currentGpu)); + CUDACHECK(cudaSetDevice(currentGpu)); + // CHECK: hipDeviceCanAccessPeer(&canAccessPeer, currentGpu, peerGpu); + cudaDeviceCanAccessPeer(&canAccessPeer, currentGpu, peerGpu); + if (canAccessPeer == 1) { + // CHECK: CUDACHECK(hipDeviceDisablePeerAccess(peerGpu)); + CUDACHECK(cudaDeviceDisablePeerAccess(peerGpu)); + } else + printf("peer2peer disable not required"); +} + +__global__ void matrixTranspose_static_shared(float* out, float* in, + const int width) { + // CHECK-NOT: HIP_DYNAMIC_SHARED(float, sharedMem); + // CHECK: __shared__ float sharedMem[WIDTH * WIDTH]; + __shared__ float sharedMem[WIDTH * WIDTH]; + int x = blockDim.x * blockIdx.x + threadIdx.x; + int y = blockDim.y * blockIdx.y + threadIdx.y; + sharedMem[y * width + x] = in[x * width + y]; + __syncthreads(); + out[y * width + x] = sharedMem[y * width + x]; +} + +__global__ void matrixTranspose_dynamic_shared(float* out, float* in, + const int width) { + // declare dynamic shared memory + // CHECK-NOT: extern __shared__ + // CHECK: HIP_DYNAMIC_SHARED(float, sharedMem) + extern __shared__ float sharedMem[]; + int x = blockDim.x * blockIdx.x + threadIdx.x; + int y = blockDim.y * blockIdx.y + threadIdx.y; + sharedMem[y * width + x] = in[x * width + y]; + __syncthreads(); + out[y * width + x] = sharedMem[y * width + x]; +} + +int main() { + checkPeer2PeerSupport(); + int gpuCount; + int currentGpu, peerGpu; + // CHECK: CUDACHECK(hipGetDeviceCount(&gpuCount)); + CUDACHECK(cudaGetDeviceCount(&gpuCount)); + if (gpuCount < 2) { + printf("Peer2Peer application requires atleast 2 gpu devices"); + return 0; + } + currentGpu = 0; + peerGpu = (currentGpu + 1); + printf("currentGpu=%d peerGpu=%d (Total no. of gpu = %d)\n", currentGpu, peerGpu, gpuCount); + float *data[2], *TransposeMatrix[2], *gpuTransposeMatrix[2], *randArray; + int width = WIDTH; + randArray = (float*)malloc(NUM * sizeof(float)); + for (int i = 0; i < NUM; i++) { + randArray[i] = (float)i * 1.0f; + } + enablePeer2Peer(currentGpu, peerGpu); + // CHECK: CUDACHECK(hipSetDevice(currentGpu)); + CUDACHECK(cudaSetDevice(currentGpu)); + TransposeMatrix[0] = (float*)malloc(NUM * sizeof(float)); + // CHECK: hipMalloc((void**)&gpuTransposeMatrix[0], NUM * sizeof(float)); + cudaMalloc((void**)&gpuTransposeMatrix[0], NUM * sizeof(float)); + // CHECK: hipMalloc((void**)&data[0], NUM * sizeof(float)); + cudaMalloc((void**)&data[0], NUM * sizeof(float)); + // CHECK: hipMemcpy(data[0], randArray, NUM * sizeof(float), hipMemcpyHostToDevice); + cudaMemcpy(data[0], randArray, NUM * sizeof(float), cudaMemcpyHostToDevice); + dim3 dimGrid(WIDTH / THREADS_PER_BLOCK_X, WIDTH / THREADS_PER_BLOCK_Y); + dim3 dimBlock(THREADS_PER_BLOCK_X, THREADS_PER_BLOCK_Y); + // CHECK: hipLaunchKernelGGL(matrixTranspose_static_shared, dim3(dimGrid), dim3(dimBlock), 0, 0, gpuTransposeMatrix[0], data[0], width); + matrixTranspose_static_shared <<>>(gpuTransposeMatrix[0], data[0], width); + // CHECK: CUDACHECK(hipSetDevice(peerGpu)); + CUDACHECK(cudaSetDevice(peerGpu)); + TransposeMatrix[1] = (float*)malloc(NUM * sizeof(float)); + // CHECK: hipMalloc((void**)&gpuTransposeMatrix[1], NUM * sizeof(float)); + cudaMalloc((void**)&gpuTransposeMatrix[1], NUM * sizeof(float)); + // CHECK: hipMalloc((void**)&data[1], NUM * sizeof(float)); + cudaMalloc((void**)&data[1], NUM * sizeof(float)); + // CHECK: hipMemcpy(data[1], gpuTransposeMatrix[0], NUM * sizeof(float), hipMemcpyDeviceToDevice); + cudaMemcpy(data[1], gpuTransposeMatrix[0], NUM * sizeof(float), cudaMemcpyDeviceToDevice); + // CHECK: hipLaunchKernelGGL(matrixTranspose_dynamic_shared, dim3(dimGrid), dim3(dimBlock), sizeof(float) * WIDTH * WIDTH, 0, gpuTransposeMatrix[1], data[1], width); + matrixTranspose_dynamic_shared <<>>(gpuTransposeMatrix[1], data[1], width); + // CHECK: hipMemcpy(TransposeMatrix[1], gpuTransposeMatrix[1], NUM * sizeof(float), hipMemcpyDeviceToHost); + cudaMemcpy(TransposeMatrix[1], gpuTransposeMatrix[1], NUM * sizeof(float), cudaMemcpyDeviceToHost); + // CHECK: hipDeviceSynchronize(); + cudaDeviceSynchronize(); + disablePeer2Peer(currentGpu, peerGpu); + // verify the results + int errors = 0; + double eps = 1.0E-6; + for (int i = 0; i < NUM; i++) { + if (std::abs(randArray[i] - TransposeMatrix[1][i]) > eps) { + printf("%d cpu: %f gpu peered data %f\n", i, randArray[i], TransposeMatrix[1][i]); + errors++; + } + } + if (errors != 0) { + printf("FAILED: %d errors\n", errors); + } else { + printf("Peer2Peer PASSED!\n"); + } + free(randArray); + for (int i = 0; i < 2; i++) { + // CHECK: hipFree(data[i]); + cudaFree(data[i]); + // CHECK: hipFree(gpuTransposeMatrix[i]); + cudaFree(gpuTransposeMatrix[i]); + free(TransposeMatrix[i]); + } + // CHECK: CUDACHECK(hipSetDevice(peerGpu)); + CUDACHECK(cudaSetDevice(peerGpu)); + // CHECK: CUDACHECK(hipDeviceReset()); + CUDACHECK(cudaDeviceReset()); + // CHECK: CUDACHECK(hipSetDevice(currentGpu)); + CUDACHECK(cudaSetDevice(currentGpu)); + // CHECK: CUDACHECK(hipDeviceReset()); + CUDACHECK(cudaDeviceReset()); + return 0; +} From a6e82d8254184ffd7fa3d635707b4168f006c3d7 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 20 May 2019 18:46:23 +0300 Subject: [PATCH 3/3] [HIP][tests] Copyright notice update [ROCm/hip commit: c9af61e9d1b4d8a05a6220823020717aaffdce08] --- .../samples/0_Intro/bit_extract/bit_extract.cpp | 2 +- .../samples/0_Intro/hcc_dialects/vadd_hc_am.cpp | 2 +- .../0_Intro/hcc_dialects/vadd_hc_array.cpp | 2 +- .../0_Intro/hcc_dialects/vadd_hc_array.hc | 2 +- .../0_Intro/hcc_dialects/vadd_hc_arrayview.cpp | 2 +- .../samples/0_Intro/hcc_dialects/vadd_hip.cpp | 2 +- .../0_Intro/module_api/defaultDriver.cpp | 2 +- .../0_Intro/module_api/launchKernelHcc.cpp | 3 +-- .../samples/0_Intro/module_api/runKernel.cpp | 2 +- .../samples/0_Intro/module_api/vcpy_kernel.cpp | 2 +- .../0_Intro/module_api_global/runKernel.cpp | 2 +- .../0_Intro/module_api_global/vcpy_kernel.cpp | 2 +- projects/hip/samples/0_Intro/square/square.cu | 2 +- .../samples/0_Intro/square/square.hipref.cpp | 2 +- .../hipDispatchLatency/hipDispatchLatency.cpp | 2 +- .../hip/samples/1_Utils/hipInfo/hipInfo.cpp | 2 +- .../0_MatrixTranspose/MatrixTranspose.cpp | 2 +- .../2_Cookbook/10_inline_asm/inline_asm.cpp | 2 +- .../11_texture_driver/tex2dKernel.cpp | 2 +- .../11_texture_driver/texture2dDrv.cpp | 2 +- .../MatrixTranspose.cpp | 2 +- .../samples/2_Cookbook/1_hipEvent/hipEvent.cpp | 2 +- .../2_Cookbook/2_Profiler/MatrixTranspose.cpp | 2 +- .../2_Cookbook/3_shared_memory/sharedMemory.cpp | 2 +- projects/hip/samples/2_Cookbook/4_shfl/shfl.cpp | 2 +- .../hip/samples/2_Cookbook/5_2dshfl/2dshfl.cpp | 2 +- .../6_dynamic_shared/dynamic_shared.cpp | 3 ++- .../hip/samples/2_Cookbook/7_streams/stream.cpp | 17 ++++++++++------- .../hip/samples/2_Cookbook/9_unroll/unroll.cpp | 2 +- 29 files changed, 39 insertions(+), 36 deletions(-) diff --git a/projects/hip/samples/0_Intro/bit_extract/bit_extract.cpp b/projects/hip/samples/0_Intro/bit_extract/bit_extract.cpp index 5c3907f0d3..d43847946e 100644 --- a/projects/hip/samples/0_Intro/bit_extract/bit_extract.cpp +++ b/projects/hip/samples/0_Intro/bit_extract/bit_extract.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_am.cpp b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_am.cpp index 47fd46cc40..3fc0c8c27a 100644 --- a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_am.cpp +++ b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_am.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.cpp b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.cpp index 3599eb07db..635b4bff21 100644 --- a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.cpp +++ b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.hc b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.hc index 605d11f999..491ba9568e 100644 --- a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.hc +++ b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_array.hc @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_arrayview.cpp b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_arrayview.cpp index 46ac8427a7..285c64fbaf 100644 --- a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_arrayview.cpp +++ b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hc_arrayview.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hip.cpp b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hip.cpp index 366ab17d99..79605acff2 100644 --- a/projects/hip/samples/0_Intro/hcc_dialects/vadd_hip.cpp +++ b/projects/hip/samples/0_Intro/hcc_dialects/vadd_hip.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/module_api/defaultDriver.cpp b/projects/hip/samples/0_Intro/module_api/defaultDriver.cpp index d13444c079..b6abfcc3a9 100644 --- a/projects/hip/samples/0_Intro/module_api/defaultDriver.cpp +++ b/projects/hip/samples/0_Intro/module_api/defaultDriver.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2017 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/module_api/launchKernelHcc.cpp b/projects/hip/samples/0_Intro/module_api/launchKernelHcc.cpp index 217f60891d..5ccd0801d1 100644 --- a/projects/hip/samples/0_Intro/module_api/launchKernelHcc.cpp +++ b/projects/hip/samples/0_Intro/module_api/launchKernelHcc.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - #include "hip/hip_runtime.h" #include "hip/hip_runtime_api.h" #include diff --git a/projects/hip/samples/0_Intro/module_api/runKernel.cpp b/projects/hip/samples/0_Intro/module_api/runKernel.cpp index ed74a7e4eb..eccc105319 100644 --- a/projects/hip/samples/0_Intro/module_api/runKernel.cpp +++ b/projects/hip/samples/0_Intro/module_api/runKernel.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/module_api/vcpy_kernel.cpp b/projects/hip/samples/0_Intro/module_api/vcpy_kernel.cpp index d7c23a8810..afcc50838a 100644 --- a/projects/hip/samples/0_Intro/module_api/vcpy_kernel.cpp +++ b/projects/hip/samples/0_Intro/module_api/vcpy_kernel.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/module_api_global/runKernel.cpp b/projects/hip/samples/0_Intro/module_api_global/runKernel.cpp index 715d889558..76af21b0f9 100644 --- a/projects/hip/samples/0_Intro/module_api_global/runKernel.cpp +++ b/projects/hip/samples/0_Intro/module_api_global/runKernel.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2017 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2017-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/module_api_global/vcpy_kernel.cpp b/projects/hip/samples/0_Intro/module_api_global/vcpy_kernel.cpp index 8c4873427f..662dcd0cc3 100644 --- a/projects/hip/samples/0_Intro/module_api_global/vcpy_kernel.cpp +++ b/projects/hip/samples/0_Intro/module_api_global/vcpy_kernel.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2017 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2017-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/square/square.cu b/projects/hip/samples/0_Intro/square/square.cu index 1c23ba71a1..dd0692fc65 100644 --- a/projects/hip/samples/0_Intro/square/square.cu +++ b/projects/hip/samples/0_Intro/square/square.cu @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/0_Intro/square/square.hipref.cpp b/projects/hip/samples/0_Intro/square/square.hipref.cpp index 9bc41b59ab..a99f5af9bd 100644 --- a/projects/hip/samples/0_Intro/square/square.hipref.cpp +++ b/projects/hip/samples/0_Intro/square/square.hipref.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/1_Utils/hipDispatchLatency/hipDispatchLatency.cpp b/projects/hip/samples/1_Utils/hipDispatchLatency/hipDispatchLatency.cpp index d2abd9023e..9d384c7d6a 100644 --- a/projects/hip/samples/1_Utils/hipDispatchLatency/hipDispatchLatency.cpp +++ b/projects/hip/samples/1_Utils/hipDispatchLatency/hipDispatchLatency.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/1_Utils/hipInfo/hipInfo.cpp b/projects/hip/samples/1_Utils/hipInfo/hipInfo.cpp index 95286f5b7c..23e014ad36 100644 --- a/projects/hip/samples/1_Utils/hipInfo/hipInfo.cpp +++ b/projects/hip/samples/1_Utils/hipInfo/hipInfo.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/0_MatrixTranspose/MatrixTranspose.cpp b/projects/hip/samples/2_Cookbook/0_MatrixTranspose/MatrixTranspose.cpp index 79fd72bcf9..f369cc3095 100644 --- a/projects/hip/samples/2_Cookbook/0_MatrixTranspose/MatrixTranspose.cpp +++ b/projects/hip/samples/2_Cookbook/0_MatrixTranspose/MatrixTranspose.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/10_inline_asm/inline_asm.cpp b/projects/hip/samples/2_Cookbook/10_inline_asm/inline_asm.cpp index c47486e91a..89cfbaddbf 100644 --- a/projects/hip/samples/2_Cookbook/10_inline_asm/inline_asm.cpp +++ b/projects/hip/samples/2_Cookbook/10_inline_asm/inline_asm.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/11_texture_driver/tex2dKernel.cpp b/projects/hip/samples/2_Cookbook/11_texture_driver/tex2dKernel.cpp index 8b237d7d24..90645f6b72 100644 --- a/projects/hip/samples/2_Cookbook/11_texture_driver/tex2dKernel.cpp +++ b/projects/hip/samples/2_Cookbook/11_texture_driver/tex2dKernel.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/11_texture_driver/texture2dDrv.cpp b/projects/hip/samples/2_Cookbook/11_texture_driver/texture2dDrv.cpp index 385ed4775a..a6ba44696a 100644 --- a/projects/hip/samples/2_Cookbook/11_texture_driver/texture2dDrv.cpp +++ b/projects/hip/samples/2_Cookbook/11_texture_driver/texture2dDrv.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 - present Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/12_cmake_hip_add_executable/MatrixTranspose.cpp b/projects/hip/samples/2_Cookbook/12_cmake_hip_add_executable/MatrixTranspose.cpp index 79fd72bcf9..f369cc3095 100644 --- a/projects/hip/samples/2_Cookbook/12_cmake_hip_add_executable/MatrixTranspose.cpp +++ b/projects/hip/samples/2_Cookbook/12_cmake_hip_add_executable/MatrixTranspose.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/1_hipEvent/hipEvent.cpp b/projects/hip/samples/2_Cookbook/1_hipEvent/hipEvent.cpp index 6e778d3b2b..b9d6c41b8d 100644 --- a/projects/hip/samples/2_Cookbook/1_hipEvent/hipEvent.cpp +++ b/projects/hip/samples/2_Cookbook/1_hipEvent/hipEvent.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/2_Profiler/MatrixTranspose.cpp b/projects/hip/samples/2_Cookbook/2_Profiler/MatrixTranspose.cpp index 94174529c1..69266e1288 100644 --- a/projects/hip/samples/2_Cookbook/2_Profiler/MatrixTranspose.cpp +++ b/projects/hip/samples/2_Cookbook/2_Profiler/MatrixTranspose.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/3_shared_memory/sharedMemory.cpp b/projects/hip/samples/2_Cookbook/3_shared_memory/sharedMemory.cpp index e5f2d1f62c..fb47494e03 100644 --- a/projects/hip/samples/2_Cookbook/3_shared_memory/sharedMemory.cpp +++ b/projects/hip/samples/2_Cookbook/3_shared_memory/sharedMemory.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/4_shfl/shfl.cpp b/projects/hip/samples/2_Cookbook/4_shfl/shfl.cpp index c0223b8156..8026c34f3e 100644 --- a/projects/hip/samples/2_Cookbook/4_shfl/shfl.cpp +++ b/projects/hip/samples/2_Cookbook/4_shfl/shfl.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/5_2dshfl/2dshfl.cpp b/projects/hip/samples/2_Cookbook/5_2dshfl/2dshfl.cpp index 9e267803ca..456d00eec0 100644 --- a/projects/hip/samples/2_Cookbook/5_2dshfl/2dshfl.cpp +++ b/projects/hip/samples/2_Cookbook/5_2dshfl/2dshfl.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hip/samples/2_Cookbook/6_dynamic_shared/dynamic_shared.cpp b/projects/hip/samples/2_Cookbook/6_dynamic_shared/dynamic_shared.cpp index 47df51f82b..743da8f63c 100644 --- a/projects/hip/samples/2_Cookbook/6_dynamic_shared/dynamic_shared.cpp +++ b/projects/hip/samples/2_Cookbook/6_dynamic_shared/dynamic_shared.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -19,6 +19,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + #include // hip header file diff --git a/projects/hip/samples/2_Cookbook/7_streams/stream.cpp b/projects/hip/samples/2_Cookbook/7_streams/stream.cpp index 69983630ef..dd87e4363e 100644 --- a/projects/hip/samples/2_Cookbook/7_streams/stream.cpp +++ b/projects/hip/samples/2_Cookbook/7_streams/stream.cpp @@ -1,19 +1,22 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANUMTY OF ANY KIND, EXPRESS OR -IMPLIED, INUMCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNUMESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANUMY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER INUM AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR INUM CONUMECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/projects/hip/samples/2_Cookbook/9_unroll/unroll.cpp b/projects/hip/samples/2_Cookbook/9_unroll/unroll.cpp index cd32feff54..73b1c80f97 100644 --- a/projects/hip/samples/2_Cookbook/9_unroll/unroll.cpp +++ b/projects/hip/samples/2_Cookbook/9_unroll/unroll.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal