[Pytorch][Vulkan] Set global and local sizes for image->bool copy (#106752)
Summary:
1. Add bool to quantized flow
2. Add support for cases where channel is *not* a multiple of 4 to the shader `image_to_nchw_quantized_mul4.glsl`. Note that the `mul4` in the shader name refers to height * width % 4 == 0.
Add test cases.
See: D48082479
Test Plan:
New tests:
```
lfq@lfq-mbp fbsource % buck run --target-platforms ovr_config//platform/macos:arm64-fbsource //xplat/caffe2:pt_vulkan_api_test_binAppleMac\#macosx-arm64 -c pt.vulkan_full_precision=1 -- --gtest_filter="*copy_to_texture_bool*"
Downloaded 1/3 artifacts, 1.74 Mbytes, 50.0% cache miss (for updated rules)
Building: finished in 14.4 sec (100%) 474/474 jobs, 3/474 updated
Total time: 14.4 sec
BUILD SUCCEEDED
Running main() from xplat/third-party/gmock/googletest-1.12.1/googletest/src/gtest_main.cc
Note: Google Test filter = *copy_to_texture_bool*
[==========] Running 3 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 3 tests from VulkanAPITest
[ RUN ] VulkanAPITest.copy_to_texture_bool_mul4_hw
VUID-VkDeviceCreateInfo-pProperties-04451(ERROR / SPEC): msgNum: 976972960 - Validation Error: [ VUID-VkDeviceCreateInfo-pProperties-04451 ] Object 0: handle = 0x10bf61020, type = VK_OBJECT_TYPE_PHYSICAL_DEVICE; | MessageID = 0x3a3b6ca0 | vkCreateDevice: VK_KHR_portability_subset must be enabled because physical device VkPhysicalDevice 0x10bf61020[] supports it The Vulkan spec states: If the [VK_KHR_portability_subset] extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensions must include "VK_KHR_portability_subset". (https://vulkan.lunarg.com/doc/view/1.2.182.0/mac/1.2-extensions/vkspec.html#VUID-VkDeviceCreateInfo-pProperties-04451)
Objects: 1
[0] 0x10bf61020, type: 2, name: NULL
[ OK ] VulkanAPITest.copy_to_texture_bool_mul4_hw (114 ms)
[ RUN ] VulkanAPITest.copy_to_texture_bool_mul4_chw
[ OK ] VulkanAPITest.copy_to_texture_bool_mul4_chw (4 ms)
[ RUN ] VulkanAPITest.copy_to_texture_bool
[ OK ] VulkanAPITest.copy_to_texture_bool (7 ms)
[----------] 3 tests from VulkanAPITest (126 ms total)
[----------] Global test environment tear-down
[==========] 3 tests from 1 test suite ran. (127 ms total)
[ PASSED ] 3 tests.
```
All tests:
```
[ SKIPPED ] VulkanAPITest.querypool_flushed_shader_log (0 ms)
[----------] 331 tests from VulkanAPITest (7327 ms total)
[----------] Global test environment tear-down
[==========] 331 tests from 1 test suite ran. (7327 ms total)
[ PASSED ] 330 tests.
[ SKIPPED ] 1 test, listed below:
[ SKIPPED ] VulkanAPITest.querypool_flushed_shader_log
```
Quantized tests:
```
[----------] 63 tests from VulkanAPITest (2009 ms total)
[----------] Global test environment tear-down
[==========] 63 tests from 1 test suite ran. (2009 ms total)
[ PASSED ] 63 tests.
YOU HAVE 8 DISABLED TESTS
```
Differential Revision: D48086455
Pull Request resolved: https://github.com/pytorch/pytorch/pull/106752
Approved by: https://github.com/SS-JIA