CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
12 KiB
12 KiB
Changelog for hipTensor
Full documentation for hipTensor is available at rocm.docs.amd.com/projects/hiptensor.
hipTensor 2.4.0
Added
- Added a host-only stub
libhiptensor, built automatically whenGPU_TARGETSresolves to an empty target list (or explicitly with-DHIPTENSOR_DISABLE_DEVICE=ON), so the package, headers, and CMake config remain available and every API call returnsHIPTENSOR_STATUS_NOT_SUPPORTEDinstead of failing to link. - Added
ffm-quickandffm-fulltest categories for emulation tests.
Changed
- Reorganized test configurations per tier and category.
Optimized
- Reduced test execution duration.
Resolved issues
- Enabled
-frttion Windows to fix RTTI-related build failures.
hipTensor 2.3.0 for ROCm 7.14
Added
- Added Windows support.
- Added contraction support with FP16 and BF16 data and compute types for gfx11 and gfx12 targets.
- Added support for the following new GPU targets:
- gfx11: gfx1100, gfx1101, gfx1102, gfx1103, gfx1150, gfx1151, gfx1152, gfx1153.
- gfx12: gfx1200, gfx1201, gfx1250.
- Added unary element-wise operators to contraction, including the new
BilinearUnaryclass, dedicated instances, samples, and tests. - Added Dockerfiles (prebuilt and full build) and documentation to streamline hipTensor build environment setup.
- Added the
CREATE_TEST_APP_LOCAL_DEPLOYCMake option to stage required ROCm DLLs on Windows, and updated the Windows build documentation accordingly. - Added YAML-driven CTest test filter standardization, applying
quick/standard/comprehensive/fulltier labels to the installed test tree so tests can be run by tier withctest -L <tier>. - Added support for trinary contractions.
- Added hipTensor to the TheRock build system, enabling source builds, artifact distribution, and CI testing on both Linux and Windows.
- Added native Linux packages with HPC SDK metapackages:
amdrocm-hiptensor(runtime),amdrocm-hiptensor-devel(headers and CMake config), andamdrocm-hiptensor-test(CTest binaries).
Changed
- Replaced numeric UID-based actor-critic kernel lookup with platform-stable string-based kernel name comparison to enable cross-platform compatibility.
- Adopted FNV-1a string hashing in place of
std::hashto ensure plan cache files are portable across platforms. - Switched to ROCm-provided CMake install functions (
rocm_export_targets) for consistency with other ROCm libraries. - Adapted hipTensor to CK namespace changes for
host_tensorfunctions. - Cleaned up
rtestscript formatting and removed invalid run commands fromrtest.xml.
Removed
- Removed the legacy
.jenkinsfolder since CI migration to rocJenkins.
Optimized
- Improved column-major contraction performance by applying CK-style stride reordering for column-major inputs.
- Achieved 2x–3x speedup in contraction TFLOPS/s by using switch-case dispatch in
HiptensorUnaryOpinstead of static table lookup. - Re-selected
HIPTENSOR_ALGO_ACTOR_CRITICwinning kernels for all contraction type/rank/layout combinations to reflect current Composable Kernel tile parameters.
Resolved issues
- Fixed use-after-free bug where
hiptensorCreatePlanheld dangling pointers to user-provided descriptors; the plan now deep-copies all descriptors. - Fixed incorrect BF16 results in contraction with unary ops caused by silent
bhalf_t-to-float integer promotion in cross-type overloads.
hipTensor 2.2.0 for ROCm 7.2.0
Added
- Added software-managed plan cache support.
- Added
hiptensorHandleWritePlanCacheToFileto write the plan cache of a hipTensor handle to a file. - Added
hiptensorHandleReadPlanCacheFromFileto read a plan cache from a file into a hipTensor handle. - Added
simple_contraction_plan_cacheto demonstrate plan cache usages. - Added
plan_cache_testto test the plan cache across various tensor ranks. - Added C API headers to enable compatibility with C programs.
- Added a CMake function to allow projects to query architecture support.
- Added an option to configure the memory layout for tests and benchmarks.
Changed
- hipTensor has been moved into the new rocm-libraries "monorepo" repository (https://github.com/ROCm/rocm-libraries). This repository consolidates a number of separate ROCm libraries and shared components.
- The repository migration requires a few changes to the CMake configuration of hipTensor.
- Updated C++ standard from C++17 to C++20.
- Include files
hiptensor/hiptensor.hppandhiptensor/hiptensor_types.hppare now deprecated. Usehiptensor/hiptensor.handhiptensor/hiptensor_types.hinstead. - Converted include guards from #ifndef/#define/#endif to #pragma once.
Resolved issues
- Removed large tensor sizes causing problem in benchmarks.
hipTensor 2.1.0 for ROCm 7.1.0
Added
- Added large tensor lengths in benchmark YAML files.
- Added a new "-l" option to tests for redirecting logs to a file.
Changed
- Replaced
permutationwithelementwiseorelementwise_permuteacross folder names, file names, function names, and variable names.
Resolved issues
- Fixed an issue where
hiptensor-testfiles are not removed after uninstallation. - Fixed memory leaks in the test code and cleared Valgrind leak reports.
hipTensor 2.0.0 for ROCm 7.0.0
Added
- Added element-wise binary operation support.
- Added element-wise trinary operation support.
- Added support for new GPU target gfx950.
- Added dynamic unary and binary operator support for element-wise operations and permutation.
- Added a CMake check for
f8datatype availability. - Added
hiptensorDestroyOperationDescriptorto free all resources related to the provided descriptor. - Added
hiptensorOperationDescriptorSetAttributeto set attribute of ahiptensorOperationDescriptor_tobject. - Added
hiptensorOperationDescriptorGetAttributeto retrieve an attribute of the providedhiptensorOperationDescriptor_tobject. - Added
hiptensorCreatePlanPreferenceto allocate thehiptensorPlanPreference_tand enabled users to limit the applicable kernels for a given plan or operation. - Added
hiptensorDestroyPlanPreferenceto free all resources related to the provided preference. - Added
hiptensorPlanPreferenceSetAttributeto set attribute of ahiptensorPlanPreference_tobject. - Added
hiptensorPlanGetAttributeto retrieve information about an already-created plan. - Added
hiptensorEstimateWorkspaceSizeto determine the required workspaceSize for the given operation. - Added
hiptensorCreatePlanto allocate ahiptensorPlan_tobject, select an appropriate kernel for a given operation and prepare a plan that encodes the execution. - Added
hiptensorDestroyPlanto free all resources related to the provided plan.
Changed
- Removed architecture support for gfx940 and gfx941.
- Generalized opaque buffer now for any descriptor.
- Replaced
hipDataTypewithhiptensorDataType_tfor all supported types, for example,HIP_R_32FtoHIPTENSOR_R_32F. - Replaced
hiptensorComputeType_twithhiptensorComputeDescriptor_tfor all supported types. - Replaced
hiptensorInitTensorDescriptorwithhiptensorCreateTensorDescriptor. - Changed handle type and API usage from
*handletohandle. - Replaced
hiptensorContractionDescriptor_twithhipTensorOperationDescriptor_t. - Replaced
hiptensorInitContractionDescriptorwithhiptensorCreateContraction. - Replaced
hiptensorContractionFind_twithhiptensorPlanPreference_t. - Replaced
hiptensorInitContractionFindwithhiptensorCreatePlanPreference. - Replaced
hiptensorContractionGetWorkspaceSizewithhiptensorEstimateWorkspaceSize. - Replaced
HIPTENSOR_WORKSPACE_RECOMMENDEDwithHIPTENSOR_WORKSPACE_DEFAULT. - Replaced
hiptensorContractionPlan_twithhiptensorPlan_t. - Replaced
hiptensorInitContractionPlanwithhiptensorCreatePlan. - Replaced
hiptensorContractionwithhiptensorContract. - Replaced
hiptensorPermutationwithhiptensorPermute. - Replaced
hiptensorReductionwithhiptensorReduce. - Replaced
hiptensorElementwiseBinarywithhiptensorElementwiseBinaryExecute. - Replaced
hiptensorElementwiseTrinarywithhiptensorElementwiseTrinaryExecute. - Removed function
hiptensorReductionGetWorkspaceSize.
hipTensor 1.5.0 for ROCm 6.4.0
Added
- Added benchmarking suites for contraction, permutation, and reduction. YAML files are categorized into bench and validation folders for organization
- Added emulation test suites for contraction, permutation, and reduction
- Support has been added for changing the default data layout using the
HIPTENSOR_DEFAULT_STRIDES_COL_MAJORenvironment variable
Changed
- Used
GPU_TARGETSinstead ofAMDGPU_TARGETSincmakelists.txt - Binary sizes can be reduced on supported compilers by using the
--offload-compresscompiler flag
Optimized
- Optimized the hyper-parameter selection algorithm for permutation
Resolved issues
- For CMake bug workaround, set
CMAKE_NO_BUILTIN_CHRPATHwhenBUILD_OFFLOAD_COMPRESSis unset
hipTensor 1.4.0 for ROCm 6.3.0
Added
- Added support for tensor reduction, including APIs, CPU reference, unit tests, and documentation
Changed
- ASAN builds only support xnack+ targets.
- ASAN builds use
-mcmodel=largeto accommodate library sizes greater than 2GB. - Updated the permute backend to accommodate changes to element-wise operations.
- Updated the actor-critic implementation.
Optimized
- Split kernel instances to improve build times
Resolved issues
- Fixed a bug in randomized tensor input data generation.
- Fixed the default strides calculation to be in column major order.
- Fixed a small memory leak by properly destroying HIP event objects in tests.
- Default strides calculations now follow column-major convention.
- Various documentation formatting updates and fixes.
hipTensor 1.3.0 for ROCm 6.2.0
Additions
- Added support for tensor permutation of ranks of 2, 3, 4, 5 and 6
- Added tests for tensor permutation of ranks of 2, 3, 4, 5 and 6
- Added support for tensor contraction of M6N6K6: M, N, K up to rank 6
- Added tests for tensor contraction of M6N6K6: M, N, K up to rank 6
- Added new test YAML parsing to support sequential parameters ordering
Changes
- Documentation updates for installation, programmer's guide and API reference
- Prefer amd-llvm-devel package before system LLVM library
- Preferred compilers changed to CC=amdclang CXX=amdclang++
- Updated actor-critic selection for new contraction kernel additions
Fixes
- Fixed LLVM parsing crash
- Fixed memory consumption issue in complex kernels
- Work-around implemented for compiler crash during debug build
- Allow random modes ordering for tensor contractions
hipTensor 1.2.0 for ROCm 6.1.0
Additions
- API support for permutation of rank 4 tensors: f16 and f32
- New datatype support in contractions of rank 4: f16, bf16, complex f32, complex f64
- Added scale and bilinear contraction samples and tests for new supported data types
- Added permutation samples and tests for f16, f32 types
Fixes
- Fixed bug in contraction calculation with data type f32
hipTensor 1.1.0 for ROCm 6.0.0
Additions
- Architecture support for gfx940, gfx941, and gfx942
- Client tests configuration parameters now support YAML file input format
Changes
- Doxygen now treats warnings as errors
Fixes
- Client tests output redirections now behave accordingly
- Removed dependency static library deployment
- Security issues for documentation
- Compile issues in debug mode
- Corrected soft link for ROCm deployment
hipTensor 1.0.0 for ROCm 5.7.0
Additions
- Initial prototype enablement of hipTensor library that supports tensor operations
- Kernel selection support for Default and Actor-Critic algorithms
- API support for:
- Definition and contraction of rank 4 tensors
- Contextual logging and output redirection
- Kernel selection caching
- Data type support for f32 and f64
- Architecture support for gfx908 and gfx90a