diff --git a/projects/hip/src/hip_event.cpp b/projects/hip/src/hip_event.cpp index d1ee37a45e..58d764bc44 100644 --- a/projects/hip/src/hip_event.cpp +++ b/projects/hip/src/hip_event.cpp @@ -45,10 +45,10 @@ ihipEvent_t::ihipEvent_t(unsigned flags) void ihipEvent_t::attachToCompletionFuture(const hc::completion_future *cf, hipStream_t stream, ihipEventType_t eventType) { - _state = hipEventStatusRecording; _marker = *cf; _type = eventType; _stream = stream; + _state = hipEventStatusRecording; } @@ -157,13 +157,12 @@ hipError_t hipEventRecord(hipEvent_t event, hipStream_t stream) event->_state = hipEventStatusComplete; return ihipLogStatus(hipSuccess); } else { - event->_state = hipEventStatusRecording; // Clear timestamps event->_timestamp = 0; // Record the event in the stream: stream->locked_recordEvent(event); - + event->_state = hipEventStatusRecording; return ihipLogStatus(hipSuccess); } } else { @@ -191,6 +190,10 @@ hipError_t hipEventSynchronize(hipEvent_t event) { HIP_INIT_SPECIAL_API(TRACE_SYNC, event); + if (!(event->_flags & hipEventReleaseToSystem)) { + tprintf(DB_WARN, "hipEventSynchronize on event without system-scope fence ; consider creating with hipEventReleaseToSystem\n"); + } + if (event) { if (event->_state == hipEventStatusUnitialized) { return ihipLogStatus(hipErrorInvalidResourceHandle); @@ -268,6 +271,10 @@ hipError_t hipEventQuery(hipEvent_t event) { HIP_INIT_SPECIAL_API(TRACE_QUERY, event); + if (!(event->_flags & hipEventReleaseToSystem)) { + tprintf(DB_WARN, "hipEventQuery on event without system-scope fence ; consider creating with hipEventReleaseToSystem\n"); + } + if ((event->_state == hipEventStatusRecording) && !event->locked_isReady()) { return ihipLogStatus(hipErrorNotReady); } else { diff --git a/projects/hip/src/hip_hcc_internal.h b/projects/hip/src/hip_hcc_internal.h index 32c787477c..82883f76b2 100644 --- a/projects/hip/src/hip_hcc_internal.h +++ b/projects/hip/src/hip_hcc_internal.h @@ -218,7 +218,8 @@ extern const char *API_COLOR_END; #define DB_SYNC 1 /* 0x02 - trace synchronization pieces */ #define DB_MEM 2 /* 0x04 - trace memory allocation / deallocation */ #define DB_COPY 3 /* 0x08 - trace memory copy and peer commands. . */ -#define DB_MAX_FLAG 4 +#define DB_WARN 4 /* 0x10 - warn about sub-optimal or shady behavior */ +#define DB_MAX_FLAG 5 // When adding a new debug flag, also add to the char name table below. // // @@ -235,6 +236,7 @@ static const DbName dbName [] = {KYEL, "sync"}, {KCYN, "mem"}, {KMAG, "copy"}, + {KRED, "warn"}, }; diff --git a/projects/hip/src/hip_stream.cpp b/projects/hip/src/hip_stream.cpp index f62be31b9e..0cb5e732ab 100644 --- a/projects/hip/src/hip_stream.cpp +++ b/projects/hip/src/hip_stream.cpp @@ -103,7 +103,7 @@ hipError_t hipStreamWaitEvent(hipStream_t stream, hipEvent_t event, unsigned int event->locked_waitComplete((event->_flags & hipEventBlockingSync) ? hc::hcWaitModeBlocked : hc::hcWaitModeActive); } else { stream = ihipSyncAndResolveStream(stream); - // This will user create_blocking_marker to wait on the specified queue. + // This will use create_blocking_marker to wait on the specified queue. stream->locked_streamWaitEvent(event); } diff --git a/projects/hip/tests/src/runtimeApi/device/hipDeviceComputeCapability.cpp b/projects/hip/tests/src/runtimeApi/device/hipDeviceComputeCapability.cpp new file mode 100644 index 0000000000..5c9af3d762 --- /dev/null +++ b/projects/hip/tests/src/runtimeApi/device/hipDeviceComputeCapability.cpp @@ -0,0 +1,46 @@ +/* +Copyright (c) 2015-2017 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 WARRANNTY OF ANY KIND, EXPRESS OR +IMPLIED, INNCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANNY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER INN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR INN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +/* + * Conformance test for checking functionality of + * hipError_t hipDeviceComputeCapability(int* major, int* minor, hipDevice_t device); + */ + +/* HIT_START + * BUILD: %t %s ../../test_common.cpp + * RUN: %t + * HIT_END + */ + +#include "test_common.h" + +int main() +{ + int numDevices = 0; + int major,minor; + hipDevice_t device; + HIPCHECK(hipGetDeviceCount(&numDevices)); + for(int i=0;i= 0); + HIPASSERT(minor >= 0); + } + passed(); +} diff --git a/projects/hip/tests/src/runtimeApi/device/hipDeviceGetName.cpp b/projects/hip/tests/src/runtimeApi/device/hipDeviceGetName.cpp new file mode 100644 index 0000000000..ba260ac2e5 --- /dev/null +++ b/projects/hip/tests/src/runtimeApi/device/hipDeviceGetName.cpp @@ -0,0 +1,47 @@ +/* +Copyright (c) 2015-2017 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 WARRANNTY OF ANY KIND, EXPRESS OR +IMPLIED, INNCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANNY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER INN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR INN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +/* + * Conformance test for checking functionality of + * hipError_t hipDeviceGetName(char* name, int len, hipDevice_t device); + */ + +/* HIT_START + * BUILD: %t %s ../../test_common.cpp + * RUN: %t + * HIT_END + */ + +#include "test_common.h" + +#define len 256 + +int main() +{ + int numDevices = 0; + char name[len]; + hipDevice_t device; + HIPCHECK(hipGetDeviceCount(&numDevices)); + for(int i=0;i +#include +#include"test_common.h" + +int main(){ + hipFuncCache_t cacheConfig; + void *func; + hipFuncSetCacheConfig(func, cacheConfig); + passed(); +} + diff --git a/projects/hip/tests/src/runtimeApi/device/hipSetDevice.cpp b/projects/hip/tests/src/runtimeApi/device/hipSetDevice.cpp new file mode 100644 index 0000000000..b1b7cac12d --- /dev/null +++ b/projects/hip/tests/src/runtimeApi/device/hipSetDevice.cpp @@ -0,0 +1,36 @@ +/* +Copyright (c) 2015-2017 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 WARRANNTY OF ANY KIND, EXPRESS OR +IMPLIED, INNCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANNY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER INN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR INN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +/* HIT_START + * BUILD: %t %s ../../test_common.cpp + * RUN: %t EXCLUDE_HIP_PLATFORM + * HIT_END + */ + +#include "test_common.h" + +int main(){ + int numDevices = 0; + HIPCHECK(hipGetDeviceCount(&numDevices)); + for(int i=0;i