Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions backends/arm/runtime/VGFSetup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ enum class FormatScalarKind {
Uint,
Sint,
Float,
BFloat,
};

struct FormatInfo {
Expand Down Expand Up @@ -157,6 +158,7 @@ static uint32_t get_format_component_count(VkFormat format) {
case VK_FORMAT_R16_UINT:
case VK_FORMAT_R16_SINT:
case VK_FORMAT_R16_SFLOAT:
case VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM:
case VK_FORMAT_R32_UINT:
case VK_FORMAT_R32_SINT:
case VK_FORMAT_R32_SFLOAT:
Expand Down Expand Up @@ -209,6 +211,9 @@ static bool get_format_info(VkFormat format, FormatInfo* info) {
case VK_FORMAT_R16_SFLOAT:
*info = FormatInfo{1, 2, FormatScalarKind::Float};
return true;
case VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM:
*info = FormatInfo{1, 2, FormatScalarKind::BFloat};
return true;
case VK_FORMAT_R32_UINT:
*info = FormatInfo{1, 4, FormatScalarKind::Uint};
return true;
Expand Down Expand Up @@ -3615,6 +3620,7 @@ static uint32_t get_format_size(VkFormat format) {
case VK_FORMAT_R16_UINT:
case VK_FORMAT_R16_SINT:
case VK_FORMAT_R16_SFLOAT:
case VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM:
case VK_FORMAT_R8G8_UINT:
case VK_FORMAT_R8G8_SINT:
return 2;
Expand Down
12 changes: 6 additions & 6 deletions backends/arm/scripts/vulkan_utils.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,21 @@ vulkan_sdk_arch="${ARCH}"
# macOS and Linux x86_64 use the official LunarG SDK tarballs. Linux ARM64
# uses a separately repackaged mirror of the same SDK version.
if [[ "${os_name}" == "Darwin" ]]; then
vulkan_sdk_version="1.4.341.1"
vulkan_sdk_version="1.4.350.0"
vulkan_sdk_arch="macOS"
vulkan_sdk_url="https://sdk.lunarg.com/sdk/download/${vulkan_sdk_version}/mac/vulkansdk-macos-${vulkan_sdk_version}.zip"
vulkan_sdk_sha256="632cbe96c8ed6ed00c6ce25e3a7738c466134f76586e1c51f1419410d7f9042e"
vulkan_sdk_sha256="7acc181b8fd9b4781bf51ed086222ec95d22004b85b3d0a6683a7e48ca5a1679"
elif [[ "${os_name}" == "Linux" ]] && [[ "${ARCH}" == "x86_64" ]]; then
vulkan_sdk_version="1.4.341.1"
vulkan_sdk_version="1.4.350.0"
vulkan_sdk_url="https://sdk.lunarg.com/sdk/download/${vulkan_sdk_version}/linux/vulkansdk-linux-x86_64-${vulkan_sdk_version}.tar.xz"
vulkan_sdk_sha256="3bf0f762afb6c79bc6a9d9fb5998745ccff928800a29619b501ed9de7fd9789b"
vulkan_sdk_sha256="b65f068ab36263559da49d7cacd7e7b9df23824ca8b68ccc522a2b06f5725df2"
elif [[ "${os_name}" == "Linux" ]] && ([[ "${ARCH}" == "aarch64" ]] || [[ "${ARCH}" == "arm64" ]]); then
vulkan_sdk_version="1.4.341.1"
vulkan_sdk_version="1.4.350.0"
if [[ "${vulkan_sdk_arch}" == "arm64" ]]; then
vulkan_sdk_arch="aarch64"
fi
vulkan_sdk_url="https://github.com/jakoch/vulkan-sdk-arm/releases/download/${vulkan_sdk_version}/vulkansdk-ubuntu-22.04-arm-${vulkan_sdk_version}.tar.xz"
vulkan_sdk_sha256="345312aee2c835e128b30653278593f899a659a7ba287c571cafb22acb708b8f"
vulkan_sdk_sha256="9e403d444219bb7c17e9231b580d704453e2afa30a1c2fdd568d1776dc68790b"
else
log_step "vulkan" "Error: only macOS and Linux are supported (detected ${os_name}); architecture must be x86-64 or aarch64/arm64"
exit 1
Expand Down
2 changes: 1 addition & 1 deletion backends/arm/test/ops/test_matmul.py
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ def test_matmul_u85_INT(test_case: test_case_t):
pipeline.run()


@common.parametrize("test_case", test_suite | test_suite_fp16)
@common.parametrize("test_case", test_suite | test_suite_fp16 | test_suite_bf16)
@common.SkipIfNoModelConverter
def test_matmul_vgf_no_quant(test_case: test_case_t):
test_data = test_case()
Expand Down
3 changes: 1 addition & 2 deletions backends/arm/test/runner_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,7 @@ def is_concrete_shape(shape_like) -> bool:
return all(isinstance(dim, numbers.Integral) for dim in shape_like)

def to_torch_tensor() -> torch.Tensor:
if array.dtype.type is np.void:
# If dtype is void, "cheat" and use the output_tensor dtype.
if output_tensor.dtype == torch.bfloat16 or array.dtype.type is np.void:
return torch.frombuffer(array, dtype=output_tensor.dtype)
return torch.from_numpy(array)

Expand Down
14 changes: 8 additions & 6 deletions backends/arm/test/tester/test_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -1258,13 +1258,15 @@ def __init__(
):
if tosa_spec is None:
if tosa_version is None:
tosa_spec = VgfCompileSpec().tosa_spec
else:
if tosa_extensions is None:
tosa_version = str(VgfCompileSpec().tosa_spec)
if tosa_extensions is None:
if "FP" in tosa_version:
tosa_extensions = ["bf16"]
else:
tosa_extensions = []
tosa_spec = TosaSpecification.create_from_string(
tosa_version + "".join([f"+{ext}" for ext in tosa_extensions])
)
tosa_spec = TosaSpecification.create_from_string(
tosa_version + "".join([f"+{ext}" for ext in tosa_extensions])
)
elif isinstance(tosa_spec, str):
tosa_spec = TosaSpecification.create_from_string(tosa_spec)
compile_spec = common.get_vgf_compile_spec(
Expand Down
2 changes: 1 addition & 1 deletion backends/vulkan/third-party/Vulkan-Headers
Submodule Vulkan-Headers updated 69 files
+9 −13 .github/workflows/ci.yml
+4 −4 BUILD.gn
+40 −55 CMakeLists.txt
+58 −27 Makefile.release
+23 −23 include/vk_video/vulkan_video_codec_av1std.h
+1 −1 include/vk_video/vulkan_video_codec_av1std_decode.h
+1 −1 include/vk_video/vulkan_video_codec_av1std_encode.h
+9 −9 include/vk_video/vulkan_video_codec_h264std.h
+2 −2 include/vk_video/vulkan_video_codec_h264std_decode.h
+1 −1 include/vk_video/vulkan_video_codec_h264std_encode.h
+24 −24 include/vk_video/vulkan_video_codec_h265std.h
+2 −2 include/vk_video/vulkan_video_codec_h265std_decode.h
+1 −1 include/vk_video/vulkan_video_codec_h265std_encode.h
+9 −9 include/vk_video/vulkan_video_codec_vp9std.h
+1 −1 include/vk_video/vulkan_video_codec_vp9std_decode.h
+1 −1 include/vk_video/vulkan_video_codecs_common.h
+2 −1 include/vulkan/vk_icd.h
+3 −0 include/vulkan/vk_layer.h
+1 −1 include/vulkan/vk_platform.h
+964 −9,823 include/vulkan/vulkan.cppm
+1 −1 include/vulkan/vulkan.h
+8,021 −4,463 include/vulkan/vulkan.hpp
+1 −1 include/vulkan/vulkan_android.h
+32 −1 include/vulkan/vulkan_beta.h
+5,085 −2,699 include/vulkan/vulkan_core.h
+1 −1 include/vulkan/vulkan_directfb.h
+3,007 −1,852 include/vulkan/vulkan_enums.hpp
+726 −152 include/vulkan/vulkan_extension_inspection.hpp
+4,806 −3,804 include/vulkan/vulkan_format_traits.hpp
+1 −1 include/vulkan/vulkan_fuchsia.h
+17,075 −17,127 include/vulkan/vulkan_funcs.hpp
+1 −1 include/vulkan/vulkan_ggp.h
+10,613 −8,801 include/vulkan/vulkan_handles.hpp
+2,496 −289 include/vulkan/vulkan_hash.hpp
+69 −39 include/vulkan/vulkan_hpp_macros.hpp
+1 −1 include/vulkan/vulkan_ios.h
+1 −1 include/vulkan/vulkan_macos.h
+1 −1 include/vulkan/vulkan_metal.h
+72 −5 include/vulkan/vulkan_ohos.h
+10,388 −9,460 include/vulkan/vulkan_raii.hpp
+1 −1 include/vulkan/vulkan_screen.h
+148 −148 include/vulkan/vulkan_shared.hpp
+2,356 −1,248 include/vulkan/vulkan_static_assertions.hpp
+83,077 −35,094 include/vulkan/vulkan_structs.hpp
+2,900 −1,793 include/vulkan/vulkan_to_string.hpp
+1 −1 include/vulkan/vulkan_vi.h
+57 −156 include/vulkan/vulkan_video.cppm
+1,176 −609 include/vulkan/vulkan_video.hpp
+1 −1 include/vulkan/vulkan_wayland.h
+1 −1 include/vulkan/vulkan_win32.h
+1 −1 include/vulkan/vulkan_xcb.h
+1 −1 include/vulkan/vulkan_xlib.h
+1 −1 include/vulkan/vulkan_xlib_xrandr.h
+3 −1 registry/apiconventions.py
+578 −90 registry/base_generator.py
+40 −14 registry/cgenerator.py
+121 −67 registry/generator.py
+91 −21 registry/parse_dependency.py
+289 −83 registry/profiles/VP_KHR_roadmap.json
+258 −28 registry/reg.py
+4 −5 registry/spec_tools/conventions.py
+1 −1 registry/spec_tools/util.py
+1 −1 registry/stripAPI.py
+79,044 −48,497 registry/validusage.json
+120 −119 registry/video.xml
+5,572 −2,348 registry/vk.xml
+17 −1 registry/vkconventions.py
+246 −40 registry/vulkan_object.py
+5 −2 tests/CMakeLists.txt
Loading