Commit Graph

13474 Commits

Author SHA1 Message Date
Vladislav Sytchenko 53dd6b7a66 Rework the texture C++ API
Currently the texture C++ API is forwarded to the ihip*Impl() calls, which are not even a part of Cuda. These should be forwarded to their respective Cuda C APIs instead.

This change also fixes a bug with hipUnbindTexture() creating a dangling pointer.

Change-Id: Ifafc9d106855a11bec84a18ea214b3d89e39990d
2020-03-18 18:14:53 -04:00
Vladislav Sytchenko 42b149fe3c Correctly infer the texture read mode
Currently we extract the read mode from the ihip*impl() calls, which is not correct. We should be getting it from the texture itself directly.

Change-Id: Idf6449fefa395a887138a252e8ea937a6897e600
2020-03-18 18:14:45 -04:00
Vladislav Sytchenko 9731b61a60 Correct the definition of ...
hipBindTextureToMipmappedArray()

The texture reference needs to be passed as a constant pointer.

Change-Id: I6d31204c7f2325a5bc1e8b6e089fd9f8d21d1d78
2020-03-18 18:14:36 -04:00
Vladislav Sytchenko 7a81e55de7 Correct the declaration of hipBindTexture2D()
The texture reference needs to be passed as a constant pointer.

Change-Id: Idde461f0f328ac87ce677b6bab3203161b514cbf
2020-03-18 18:08:23 -04:00
Vladislav Sytchenko 7765792a42 Correct the declaration of hipBindTextureToArray()
The texture reference needs to be passed as a constant pointer.

Change-Id: Iff171626536071fb2020cfff7132ec930577b1b9
2020-03-18 18:08:13 -04:00
Vladislav Sytchenko 600b1006c8 Correct the declaration of hipBindTexture()
The texture reference needs to be passed as a constant pointer.

Change-Id: I36ca0bddaba30becfc2ce70dd9e5b7db66c57f27
2020-03-18 18:08:01 -04:00
Vladislav Sytchenko 6ff0d15a62 Add missing mipmap API entries
Introduce hipFreeMipmappedArray(), hipMallocMipmappedArray() and hipGetMipmappedArrayLevel() APIs.

Change-Id: I878228c79fa1c54536c17d6baf45f83d51d2b1c7
2020-03-18 18:07:45 -04:00
Vladislav Sytchenko b4b05e2ab0 Don't hardcode the texture read mode
The readmode needs to be inferred from the template arguments.

Change-Id: I067037035e2492a24eac47e16d4015f879be0ea7
2020-03-18 18:07:33 -04:00
Vladislav Sytchenko da5f852cdd Merge "Start the lifetime of the texture reference" into amd-master-next 2020-03-18 18:07:24 -04:00
Aaron Enye Shi b3d035b1dc SWDEV-227621 - Fix OpenCL CMake Packaging
Update the packaging code to be CMake 3.5 compatible for CI. Create two
packages rocm-opencl and rocm-opencl-dev on Ubuntu and CentOS. Add
proper versioning into naming.

Change-Id: I116081b7f6f7efa4be43ab3a66e4d3bff0589298
2020-03-18 15:22:11 -04:00
Jiabao Xie bbfba3bae1 Merge "Cleaned include statements and deleted unnecessary operator overloads" into amd-master-next 2020-03-18 14:37:19 -04:00
kjayapra-amd d961c64b00 SWDEV-216213 - Function to lookup module functions from COMGR.
Change-Id: I3890fb188b5b3ae44d2bb161d1b7e75228e30942
2020-03-18 12:45:21 -04:00
Vladislav Sytchenko b4a0008b36 Start the lifetime of the texture reference
reinterpret_cast<> doesn't create an object, so the texref is actually unitiliazed. This may lead to garbage data in some of its struct members.

Initialize it by performing a placement new. The constructer should set all of its members to default values. There's no way currently to extract the channel type, so use single channel char for now.

Change-Id: I41b305a75bb3f30130324de785099f55b3e130c7
2020-03-18 12:30:11 -04:00
Vladislav Sytchenko 8667e21b25 Add constraints to texture indirect functions
Similar to the previous patch, this change adds type constraints to texture indirect functions. Since we don't have to deduce the return type for these, we simply just have to check if the user provided a valid channel type.

Change-Id: Ia094bd6126e01df2ea90902c9aa59cb6cfe85773
2020-03-18 12:24:40 -04:00
Vladislav Sytchenko a994da8af6 Add constraints to texture fetch functions
When sampling a pixel the hw always returns a float4. The type in the texture reference controls the bitcast that we perform before returning the sampled pixel. Creating a texture with an unsupported will lead to potential UB.

This change makes it so that it's only possible to use textures with a type that makes sense. Using something like texture<int, hipTextureType1D, hipReadModeNormalizedFloat> will now lead to a compilation error with a message "Invalid channel type!".

Change-Id: I7fde44cb1d4b9737e0c48c28cb59c018c59ccaa2
2020-03-18 12:24:40 -04:00
Sarbojit Sarkar 4cd02f20cf Merge "[hip-vdi]Fix for TF build failure [SWDEV-225827]" into amd-master-next 2020-03-18 11:52:46 -04:00
Evgeny Mankov 01bcc0015c Merge pull request #1955 from emankov/hipify-clang
[HIPIFY][perl] Fix missed sync with hipify-clang
2020-03-18 14:30:11 +03:00
Evgeny Mankov 758b3864b7 [HIPIFY][perl] Fix missed sync with hipify-clang 2020-03-18 14:24:02 +03:00
Evgeny Mankov 6ce54a6e25 Merge pull request #1954 from emankov/hipify-clang
[HIPIFY][SPARSE] sync with hipSPARSE's "added csrsm2" (#83)
2020-03-18 13:46:05 +03:00
Evgeny Mankov 126ebadcc6 [HIPIFY][SPARSE] sync with hipSPARSE's "added csrsm2" (#83)
+ https://github.com/ROCmSoftwarePlatform/hipSPARSE/pull/83
+ Update doc and hipify-perl accordingly
2020-03-18 13:44:50 +03:00
Jatin Chaudhary d32802a176 Merge "Enable saxpy Test" into amd-master-next 2020-03-18 06:32:05 -04:00
Evgeny Mankov aeac6239ff Merge pull request #1953 from emankov/hipify-clang
[HIPIFY][SPARSE] sync with hipSPARSE
2020-03-18 13:09:21 +03:00
Evgeny Mankov baa0c68ab4 [HIPIFY][SPARSE] sync with hipSPARSE
+ Update doc and hipify-perl accordingly
2020-03-18 13:07:46 +03:00
Chauncey Hui 7afd54f844 SWDEV-2 - Change OpenCL version number from 3109 to 3110 2020-03-18 03:00:03 -04:00
Nagy-Egri Máté Ferenc b519d1d681 Remove debug message (#1950) 2020-03-18 11:20:53 +05:30
Aryan Salmanpour 66735bff13 [HIP] use markers to sync cooperative and normal queues (#1948) 2020-03-18 11:20:43 +05:30
Yaxun (Sam) Liu 0307ae4c9a Workaround for libc++ include path for HIP-Clang (#1917)
HIP-Clang cuda_wrapper headers require clang include path before standard C++ include path.
However libc++ include path requires to be before clang include path.
To workaround this, we pass -isystem with the parent directory of clang include
path instead of the clang include path itself.
2020-03-18 11:20:21 +05:30
jglaser ea28d64297 Implement accurate max block size in hipFuncGetAttributes() (#1676)
This PR takes ensures that the maxThreadsPerBlock returned by hipFuncGetAttributes is both a multiple of the warp size and that the register usage of the maximum block does not exceed the number of available registers.

Fixes #1662
2020-03-18 11:20:06 +05:30
Paul Fultz II 9a47358324 Add missing flags for hip::device target on hip-clang (#1230)
This adds the missing compilation flags to hip::device so it can compile with hip-clang compiler.
2020-03-18 11:18:58 +05:30
Sarbojit Sarkar 957caff8b4 [hip-vdi]Fix for TF build failure [SWDEV-225827]
Change-Id: I8478779bef92bad8353b8d066b28c220bb59b98d
2020-03-17 22:52:01 -04:00
Vladislav Sytchenko 3150e1ef8d Enable simpleTexture2DLayered test for VDI
Change-Id: I420f68824c6825152ac50e5a129b11b6ad88deb9
2020-03-17 17:50:46 -04:00
Vladislav Sytchenko 8d01fad7ef Enable hipNormalizedFloatValueTex test for VDI
Change-Id: Iac8631312f34821d919b69b3fcb92b9387ba31dd
2020-03-17 17:50:30 -04:00
Tao Sang b0defd2676 Merge "Fix failure to get global variables" into amd-master-next 2020-03-17 17:08:14 -04:00
Vladislav Sytchenko 3d7945faae Rework device texture headers
This change addresses three things.

First the available APIs are brought up to par with Cuda (missing ones are added and incorrect ones removed).

Second the size of hip/hcc_detail/texture_functions.h. Using some template magic we can bring down the code size down from ~11k lines to only ~900 lines in total.

Third this change fixes some bugs in the declaration of the texture fetch funcitons. Currently the return type for textures with read mode set to hipReadModeNormalizedFloat is not float. This causes pixel data to be lost during the bitcast when the texture pixel element size is less than the size of float.

The new headers will only be enabled for VDI to avoid breaking HCC.

Change-Id: I77cb29293fb79e55681be094c37702a48d80b64c
2020-03-17 17:04:37 -04:00
Vladislav Sytchenko 3abd89925a Rework hipNormalizedFloatValueTex test
This is currently so buggy that it causes a runtime crash on Nvidia platfrom...

Disable the new version for hcc and vdi, header fixes are required for it to pass.

Currently tex1D<char, hipTextureType1D, hipReadModeNormalizedFloat> returns a char, when the actual sampled pixel value is a float, so the hi 3 bytes get lost.

Change-Id: I8222a4d8d1d8b101eb43f3f8dfbe4818f885f8ea
2020-03-17 17:04:17 -04:00
Saleel Kudchadker 36a07434ea Merge "libhiprtc.so needs to be installed in DEST dir" into amd-master-next 2020-03-17 16:17:55 -04:00
Tao Sang 8e9e6a44a4 Fix failure to get global variables
Implement _ihipGetGlobalVar() and ihipGetGlobalVar() to
get global variables.

Change-Id: I442ab6712e12306c3316f114f5dc42f6daefaad9
2020-03-17 16:14:16 -04:00
Evgeny Mankov dddc145893 Merge pull request #1951 from emankov/hipify-clang
[HIPIFY][doc] Update README.md: LLVM 10.0.0-rc4 is supported
2020-03-17 18:57:13 +03:00
Evgeny Mankov 7f51cdb9da [HIPIFY][doc] Update README.md: LLVM 10.0.0-rc4 is supported 2020-03-17 18:51:46 +03:00
Vladislav Sytchenko 7da159bac2 Merge "Enable simpleTexture3D test for VDI" into amd-master-next 2020-03-17 11:41:05 -04:00
Jatin Chaudhary 8a3ce17ba6 Adding Half Abs APIs (#1902) 2020-03-17 14:13:19 +05:30
zhaozhangjian a2281268ba fix a bug when initializing a vector of hipFunction_t (#1949) 2020-03-17 14:05:07 +05:30
Sameer Sahasrabuddhe 446a9e82e2 enable HCC printf when using hip-clang (#1947)
This allows printf to work with hip-clang and HCC runtime. See comments under #1919 for a reported bug and feature request.
2020-03-17 14:03:27 +05:30
Joseph Greathouse dc9ecf03f8 Fix compiler warning on NVCC path (#1942)
GCC emits a warning about using static functions like
hipCUDAErrorTohipError inside this function, because it has an
inline directive, but it's not static. Adding static to this function
to silence warnings (and prevent potential problems in the future).
2020-03-17 14:02:59 +05:30
Joseph Greathouse 7f49e47217 Fix occupancy calculations API on NVCC (#1941)
NVCC warned if you tried to use hipOccupancyMaxActiveBlocksPerMultiprocessor
because when passing in a device function pointer, "const void* func" was
insufficient to describe it accurately. Adding a C++ templated class type
definition for this function.
2020-03-17 14:02:48 +05:30
Reshabh Sharma 59b8dabbd0 Output file name should not change flags picked for compiler (#1938)
Fixes SWDEV-207362,

The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them.

PS: Output file refers to the file followed by -o

Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file
2020-03-17 14:02:14 +05:30
Sarbojit2019 5ddb9e1eb7 Fix __sad signature match with Cuda (#1936)
Fix for issue #1930
2020-03-17 14:02:00 +05:30
Joseph Greathouse 35a68596f9 Fix detection of support for cooperative groups (#1932)
Query ROCr to see if we have the proper lower-level support for
cooperative groups -- GWS support through the firmware, driver,
thunk, and ROCr. ROCr does these checks for us, and presents a
query that allows us to see if GWS entries are available for use.
If so, then we have all the lower-level technologies needed, and
we should enable cooperative groups support for HIP.
2020-03-17 14:01:44 +05:30
Reshabh Sharma 4a9793e2e2 Don't force compiler to treat libhip_hcc.so as a text file (#1931)
Fixes SWDEV-226025,

Right now -x c++ can come before libhip_hcc.so which forces the compiler to treat libhip_hcc.so as a text file and generates a lot of gibberish unicode. This PR changes the order of flags ensuring that -x c++ and similar flags come after libhip_hcc.so
Hopefully, this will not have any negative side effect.
2020-03-17 14:01:33 +05:30
Aryan Salmanpour e509a6d0b4 [HIP] add cooperative kernel launch APIs on NVCC (#1929) 2020-03-17 14:01:11 +05:30