Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ffp-contract=off Compilation flag for CTS build. #1803

Closed
wants to merge 78 commits into from

Conversation

nikhiljnv
Copy link
Contributor

GCC defaults to using ffp-contract=fast even when fast math is disabled in the
case of GNU C
This creates precision issues when comparing the results with that of x86_64.
GNU options reference:
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#

This fix is to disable floating-point expression contractions with
flag ffp-contract=off for math_brute_force tests

Fixes #1794

Currently, enqueue_flags test uses CLK_LOCAL_MEM_FENCE.
Use CLK_GLOBAL_MEM_FENCE instead as all threads across work-groups
need to wait here.
Update nikhilj-nv/OpenCL-CTS:master with KhronosGroup/OpenCL-CTS:master
Read-Write images have required OpenCL 2.x.
Read-Write image tests are already being skipped
for 1.x devices.
With OpenCL 3.0, read-write images being optional,
the tests should be run or skipped
depending on the implementation support.

Add a check to decide if Read-Write images are
supported or required to be supported depending
on OpenCL version and decide if the tests should
be run on skipped.

Fixes issue KhronosGroup#894
Fix formatting in case of Read-write image checks.
Also, combine two ifs into one in case of
kerne_read_write tests
Remove unnecessary spaces at various places.
Also, fix lengthy lines.
Update nikhiljnv/OpenCL-CTS:master with KhronosGroup/OpenCL-CTS:master
Merge Khronos:OpenCL-CTS:master into nikhilj:OpenCL-CTS:master
unsigned char size is silently assumed to be 1
in imagedim test of test_basic.
Pass sizeof(type) in malloc size calculation.
Also, change loop variable from signed to unsigned.
Add checks for null pointer for malloced memory.
Merge latest KhronosGroup/OpenCL-CTS:master into nikhilnv/OpenCL-CTS:KhronosGroup-master
Initial set of tests for below extensions
with Vulkan as producer
1. cl_khr_external_memory
2. cl_khr_external_memory_win32
3. cl_khr_external_memory_opaque_fd
4. cl_khr_external_semaphore
5. cl_khr_external_semaphore_win32
6. cl_khr_external_semaphore_opaque_fd
Updates to external sharing CTS
1. Fix some build issues to remove unnecessary, non-existent files
2. Add new tests for platform and device queries.
3. Some added checks for VK Support.
Update CTS build to clone Vulkan Headers
repo and pass it to CTS build
in preparation for external memory
and semaphore tests
Update CTS build script for Vulkan Headers
Fix Vulkan header include path.
Vulkan loader is required to build
test_vulkan of OpenCL-CTS.
Clone and build Vulkan loader as prerequisite
to OpenCL-CTS.
Remove arch/os suffix in Vulkan loader path
to match vulkan loader repo build.
Return type of getHandle is defined
differently based on win or linux builds.
Use appropriate guards when using API
at other places.
While at it remove duplicate definition
of ARRAY_SIZE.
Use already defined ARRAY_SIZE macro
from test_harness.
Fix build issues for test_vulkan
1. Add cl_ext.h in common files
2. Replace cl_mem_properties_khr with cl_mem_properties
3. Replace cl_external_mem_handle_type_khr with
cl_external_memory_handle_type_khr
4. Type-cast malloc as required.
    Fix warnings around getHandle API and macros
Fix code formatting to
get CTS CI builds clean.
Another set of formatting fixes.
Some more code formatting fixes.
More code formatting fixes.
Some more formatting fixes
More formatting fixes continued.
Code formatting fixes for image
Misc fixes for external sharing tests
Use appropriate headers for
Mac OSX builds
Use appropriate headers for
Mac OSX builds.
Also, fix some build issues
due to type-casting.
Fix new code formatting issues
with recent MacOS fixes.
Add back missing case statement
that was accidentally removed.
Disable USE_GAS for Vulkan Loader build
to fix aarch64 build.
Disable USE_GAS for Vulkan Loader build.
Fix clReleaseSemaphore() API.
Fix copyright year.
Some other minor fixes.
Use SPIR-V shaders instead of NV extension path
from GLSL to Vulkan shaders.
Fixes for lower end GPUs to use limited memory.
Update copy-right year at some more places.
Fix code formatting issues with
recent changes for external sharing
tests.
More formatting fixes for recent
updates to external sharing tests.
Minor formatting fixes to get
format checks clean.
Merge KhronosGroup/OpenCL-CTS:main to nikhiljnv/OpenCL-CTS:main
Upate extension list of test_compiler
with missing external memory and semaphore
extensions
Update nikhiljnv/OpenCL-CTS with latest KhronosGroup/OpenCL-CTS changes
test_vulkan is disabled by default as part of
PR KhronosGroup#1530.
Given the ongoing development to test_vulkan,
it is important to have this enabled in CI builds
to avoid breaking test builds.
Enable the test build as part of presubmit script.
GCC defaults to using ffp-contract=fast even when fast math is disabled in the
case of GNU C
This creates precision issues when comparing the results with that of x86_64.
GNU options reference:
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#

This fix is to disable floating-point expression contractions with
flag ffp-contract=off for math_brute_force tests

Fixes KhronosGroup#1794
@nikhiljnv
Copy link
Contributor Author

Closing in favor of #1805

@nikhiljnv nikhiljnv closed this Sep 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

math_bruteforce fp64 precision issues on aarch64
1 participant