Wykres commitów

6428 Commity

Autor SHA1 Wiadomość Data
Vladislav Sytchenko 2028b6eb29 Headers need to export C symbols for texture API
This also adds declarations of all the missing texture APIs.

hipTexRefSet*() functions need to take a textureReference as a ptr for type erasure to work. Runtime has been modified to accomodate this.

This change only applies to VDI.

Change-Id: Icf43cc5bd44dfc2c39084b7fe56d5a793bf7319f
2020-03-26 14:45:20 -04:00
Vladislav Sytchenko ced0582a52 Set textureObject to nullptr
This avoids dangling pointers for newly initiazlied textures

Change-Id: Ia444b91fe17fd756ed583ec595ae1febbdfbd034
2020-03-26 14:45:20 -04:00
Vladislav Sytchenko 39558dc1b9 Modify formatting for textureReferences
We don't program the numChannels and format members (these are HCC specific), so printing these will only display garbage.

Change-Id: I83dc8be9a3cae2659c64f4594d07c05330d2dd14
2020-03-26 14:45:20 -04:00
Vladislav Sytchenko b09fe1280e Correct typos in texture function declarations
Change-Id: I492995e984eda2e8a5e806c5d4c9c78da09ac483
2020-03-26 12:43:17 -04:00
Vladislav Sytchenko ea701777d8 Allow creating texture from unaligned user ptr
All we have to do is align the ptr to HW requirments an if it's not zero, then return the offset to the user.

We currently don't have anywhere to store this offset, so hipGetTextureAlignmentOffset() will still always return 0.

Change-Id: If31998127d99a2a3222a026d88249519d6102505
2020-03-26 12:43:17 -04:00
Aryan Salmanpour c8ca2355ae [hip] fix a build error when building hip with latest hcc (#1977)
there is a build error when building HIP with latest HCC from GitHub after PR#1935 merged into HIP master branch. this PR changed blockDimX to blockDim and two lines missed this change where added in the current PR.
2020-03-26 17:10:42 +05:30
Nick Curtis bb72abca20 Update hip_debugging.md (#1973)
Fix link formatting
2020-03-26 17:09:56 +05:30
Sarbojit2019 5024f9057a Fix for __usad issue (#1972)
Fixes #1930
2020-03-26 17:09:44 +05:30
Benjamin Sherman 3d38135ae2 Add const qualifiers to HIP_vector_type unary arithmetic operators (#1965)
Resolves issue #1960
2020-03-26 17:09:00 +05:30
Siu Chi Chan 8fefda2bb9 Initialize all undef symbols with a magic poison (#1962) 2020-03-26 17:06:09 +05:30
Sarbojit2019 3e363047d5 Fix for segfault seen if invalid kind is passed to hipMemcpy (#1937)
Fixes SWDEV-224941
2020-03-26 17:04:43 +05:30
Jatin Chaudhary ee5fa8977c [dtest] Adding VectorTest (#1732)
Adding unit test for operations of device vector types
2020-03-26 17:03:43 +05:30
Evgeny Mankov 34caae3863 Merge pull request #1978 from emankov/hipify-clang
[HIPIFY][doc] Update README.md: LLVM 10.0.0 Release is supported
2020-03-26 11:09:33 +03:00
Evgeny Mankov 37873d1204 [HIPIFY][doc] Update README.md: LLVM 10.0.0 Release is supported 2020-03-26 11:07:43 +03:00
Payam Ghafari 8e8b372726 Merge "updated cmake to create libamdhip64 static file as well" into amd-master-next 2020-03-26 01:10:12 -04:00
Paul Fultz II 855209abed Fix path for hip-clang when using hipcc (#1961)
* Fix path for hip-clang when using hipcc

* Fix typo

* Update regex
2020-03-25 14:42:48 -07:00
Yaxun (Sam) Liu 3bef4e60ad Add option --hipcc-func-supp for function support (#1957)
By default hipcc passes -mllvm options to let HIP-Clang inline all device functions.

--hipcc-func-supp enables function support and disables inline all.

--hipcc-no-func-supp disable function support and enables inline all.

This is a temporary solution to match HCC behavior for performance.

This option is mainly for debugging purpose.

Change-Id: I0c44ac1812bb3cea5c3e5b6e14ebaa45919236f6
2020-03-25 14:41:27 -07:00
Joseph Greathouse f61b79d9a3 Fix cooperative launch APIs to set hipGetLastError (#1935)
* Fix cooperative launch APIs to set hipGetLastError

Previously, the cooperative launch APIs did not properly log their
errors in the global hipGetLastError variable before returning back
to the user. As such, the APIs would leave hipSuccess in the
last error, which would break some use cases.

This fixes that problem by making a trampoline function that does
the HIP_INIT_API and ihipLogStatus.

* Add missing flag to the log of multi-GPU launch
2020-03-25 14:39:24 -07:00
jujiang 3774a1b106 SWDEV-226708-hipMemcpyPeerAsync failed-->Update test app to create stream on proper device
Change-Id: Ia9f51435ffb5a8fbbff39e363acecabb338bf34c
2020-03-25 17:22:56 -04:00
Payam 76703acb1d updated cmake to create libamdhip64 static file as well
Change-Id: I2054b9501cefa232abbf398524ab62450ab6805d
2020-03-25 16:37:57 -04:00
Vladislav Sytchenko e7d91b8230 Disable failing tests for VDI
The hipExtModuleLaunchKernel and hipModuleLoadDataMultiThreaded tests keeps randomly failing on Jenkins.

Change-Id: I87e5d54fb7429c14ff1dcecb20e03a7816670fae
2020-03-23 17:09:57 -04:00
Christophe Paquot 3dce22538c Merge "Enable VDI Occupancy test" into amd-master-next 2020-03-23 13:38:57 -04:00
Nick Curtis b4c69a2e4a Update hip_runtime_api.h (#1966)
Correct URL for deprecated api list
2020-03-23 10:16:24 -07:00
Saleel Kudchadker 91069c0de4 Merge "Sync streams when freeing or destroying mem" into amd-master-next 2020-03-21 13:33:41 -04:00
Christophe Paquot 653277bd3f hipStreamAddCallback test seg faults
Change-Id: If419d2fad490d0ed50eb1315af809fc1deda1ce3
SWDEV-227875: Add a lock in streams to lock when the callback is call so we make sure things aren't moving forward in the stream
2020-03-20 13:07:34 -07:00
Saleel Kudchadker 8b39e0b74e Sync streams when freeing or destroying mem
Change-Id: I6932f225a8b932bb2adbd5e37880f7e604496809
2020-03-20 10:53:23 -07:00
Christophe Paquot d98879a250 Merge "hipStreamAddCallback test seg faults" into amd-master-next 2020-03-20 12:05:37 -04:00
kjayapra-amd cd92bd7fee SWDEV-216213 - Lookup module functions from PlatformState::functions_.
Change-Id: I91dfe327f2ebdcf4c9b39ddd14d60aa0ce2fa9f4
2020-03-20 11:52:28 -04:00
Christophe Paquot 3dfbfc408b hipStreamAddCallback test seg faults
Change-Id: I1f107fc8a5c586cd571f0280ed8716c5f89d25b7
SWDEV-227875: Need to add a dummy marker in case the stream is empty.
2020-03-19 11:11:59 -07:00
Yaxun (Sam) Liu 28db1e4383 Let hipcc treat .c program as C program (#1945)
nvcc treats .c program as C program and .cpp program as C++ program.

Currently hipcc treats .c and .cpp programs as HIP programs.

It is desirable to let hipcc behave like nvcc.

Currently it is not feasible to let hipcc treat .cpp programs as C++ program
since there are too many HIP applications use .cpp as extension for HIP programs.
However we should be able let hipcc treat .c program C program since there
are few applications use .c as extensioin for HIP programs.
2020-03-19 16:16:31 +05:30
Jeff Daily 01d661b159 fix hipStreamAddCallback, block future work on stream (#1934) 2020-03-19 16:16:04 +05:30
nelsonc-amd b757c2a891 packaging: change Provides to use dash instead of underscore (#1913)
Addresses an installation problem for several HIP packages.
Packages builds have been tested locally, validation in progress.
2020-03-19 16:15:09 +05:30
Sarbojit Sarkar 3baff10618 Enable VDI Occupancy test
Change-Id: Ia89155ca909b9b7346584d19962fa0a94033bb17
2020-03-19 10:43:40 +05:30
Vladislav Sytchenko 4829a7c215 Add support for creating typed buffers
What Cuda refers to "linear texture memory" is the OpenCL equivalent of CL_MEM_OBJECT_IMAGE1D_BUFFER. For these types of allocations we should create a typed buffer instead of an image.

Currently there is no check in the texture fetch functions as to what kind of SRD is written into the texture object, so any kind of incorrect programming will cause the TA to hang. Fortunately for us, every one writes correct code :)

Change-Id: I80dab85a992f2c0754ebf303d40ac6b5e045c7c1
2020-03-18 18:15:17 -04:00
Vladislav Sytchenko e8fa3b2589 Program texture flags in a better way
Not sure what I was thinking when initially implementing this...

Change-Id: Ib82f0f5a86683c08823dd4b59c98259d27151822
2020-03-18 18:15:09 -04:00
Vladislav Sytchenko 2bad9e2821 Purge the use of ihip*impl() texture APIs
These are artifacts left from HIP-HCC and now are not needed by HIP-VDI.

Change-Id: Ib25a1081fe6146c8a89659395151e9d5bdaf7519
2020-03-18 18:15:01 -04:00
Vladislav Sytchenko 5429b40afe 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 7385a032ae 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 c7407a3b57 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 3e460ab514 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 2d77399747 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 7190fa518e 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 551bcc6293 Add missing mipmap API entries
Introduce hipFreeMipmappedArray(), hipMallocMipmappedArray() and hipGetMipmappedArrayLevel() APIs.

Change-Id: I878228c79fa1c54536c17d6baf45f83d51d2b1c7
2020-03-18 18:07:45 -04:00
Vladislav Sytchenko 99e744ab4a 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 816a56a70b Merge "Start the lifetime of the texture reference" into amd-master-next 2020-03-18 18:07:24 -04:00
Jiabao Xie ae6dd6c2fc Merge "Cleaned include statements and deleted unnecessary operator overloads" into amd-master-next 2020-03-18 14:37:19 -04:00
Vladislav Sytchenko 292d008a64 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 117f0ab102 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 ef2415edc7 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 0a35286988 Merge "[hip-vdi]Fix for TF build failure [SWDEV-225827]" into amd-master-next 2020-03-18 11:52:46 -04:00