Files
TheRock/rocm-libraries/projects/hiptensor/CHANGELOG.md
T
derek.holloway 7502bf64a4
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
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

12 KiB
Raw Blame History

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 when GPU_TARGETS resolves 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 returns HIPTENSOR_STATUS_NOT_SUPPORTED instead of failing to link.
  • Added ffm-quick and ffm-full test categories for emulation tests.

Changed

  • Reorganized test configurations per tier and category.

Optimized

  • Reduced test execution duration.

Resolved issues

  • Enabled -frtti on 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 BilinearUnary class, 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_DEPLOY CMake 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/full tier labels to the installed test tree so tests can be run by tier with ctest -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), and amdrocm-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::hash to 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_tensor functions.
  • Cleaned up rtest script formatting and removed invalid run commands from rtest.xml.

Removed

  • Removed the legacy .jenkins folder 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 HiptensorUnaryOp instead of static table lookup.
  • Re-selected HIPTENSOR_ALGO_ACTOR_CRITIC winning kernels for all contraction type/rank/layout combinations to reflect current Composable Kernel tile parameters.

Resolved issues

  • Fixed use-after-free bug where hiptensorCreatePlan held 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 hiptensorHandleWritePlanCacheToFile to write the plan cache of a hipTensor handle to a file.
  • Added hiptensorHandleReadPlanCacheFromFile to read a plan cache from a file into a hipTensor handle.
  • Added simple_contraction_plan_cache to demonstrate plan cache usages.
  • Added plan_cache_test to 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.hpp and hiptensor/hiptensor_types.hpp are now deprecated. Use hiptensor/hiptensor.h and hiptensor/hiptensor_types.h instead.
  • 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 permutation with elementwise or elementwise_permute across folder names, file names, function names, and variable names.

Resolved issues

  • Fixed an issue where hiptensor-test files 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 f8 datatype availability.
  • Added hiptensorDestroyOperationDescriptor to free all resources related to the provided descriptor.
  • Added hiptensorOperationDescriptorSetAttribute to set attribute of a hiptensorOperationDescriptor_t object.
  • Added hiptensorOperationDescriptorGetAttribute to retrieve an attribute of the provided hiptensorOperationDescriptor_t object.
  • Added hiptensorCreatePlanPreference to allocate the hiptensorPlanPreference_t and enabled users to limit the applicable kernels for a given plan or operation.
  • Added hiptensorDestroyPlanPreference to free all resources related to the provided preference.
  • Added hiptensorPlanPreferenceSetAttribute to set attribute of a hiptensorPlanPreference_t object.
  • Added hiptensorPlanGetAttribute to retrieve information about an already-created plan.
  • Added hiptensorEstimateWorkspaceSize to determine the required workspaceSize for the given operation.
  • Added hiptensorCreatePlan to allocate a hiptensorPlan_t object, select an appropriate kernel for a given operation and prepare a plan that encodes the execution.
  • Added hiptensorDestroyPlan to free all resources related to the provided plan.

Changed

  • Removed architecture support for gfx940 and gfx941.
  • Generalized opaque buffer now for any descriptor.
  • Replaced hipDataType with hiptensorDataType_t for all supported types, for example, HIP_R_32F to HIPTENSOR_R_32F.
  • Replaced hiptensorComputeType_t with hiptensorComputeDescriptor_t for all supported types.
  • Replaced hiptensorInitTensorDescriptor with hiptensorCreateTensorDescriptor.
  • Changed handle type and API usage from *handle to handle.
  • Replaced hiptensorContractionDescriptor_t with hipTensorOperationDescriptor_t.
  • Replaced hiptensorInitContractionDescriptor with hiptensorCreateContraction.
  • Replaced hiptensorContractionFind_t with hiptensorPlanPreference_t.
  • Replaced hiptensorInitContractionFind with hiptensorCreatePlanPreference.
  • Replaced hiptensorContractionGetWorkspaceSize with hiptensorEstimateWorkspaceSize.
  • Replaced HIPTENSOR_WORKSPACE_RECOMMENDED with HIPTENSOR_WORKSPACE_DEFAULT.
  • Replaced hiptensorContractionPlan_t with hiptensorPlan_t.
  • Replaced hiptensorInitContractionPlan with hiptensorCreatePlan.
  • Replaced hiptensorContraction with hiptensorContract.
  • Replaced hiptensorPermutation with hiptensorPermute.
  • Replaced hiptensorReduction with hiptensorReduce.
  • Replaced hiptensorElementwiseBinary with hiptensorElementwiseBinaryExecute.
  • Replaced hiptensorElementwiseTrinary with hiptensorElementwiseTrinaryExecute.
  • 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_MAJOR environment variable

Changed

  • Used GPU_TARGETS instead of AMDGPU_TARGETS in cmakelists.txt
  • Binary sizes can be reduced on supported compilers by using the --offload-compress compiler flag

Optimized

  • Optimized the hyper-parameter selection algorithm for permutation

Resolved issues

  • For CMake bug workaround, set CMAKE_NO_BUILTIN_CHRPATH when BUILD_OFFLOAD_COMPRESS is 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=large to 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