[Pytorch] Unary Ops (#104994)
Summary:
Use templates to generate shaders for unary operators `exp` and `sqrt` for in-place and not in-place variants.
[sqrt](https://pytorch.org/docs/stable/generated/torch.sqrt.html)
[exp](https://pytorch.org/docs/stable/generated/torch.Tensor.exp.html#torch.Tensor.exp)
Refactor: use 'NAME' field in yaml for generated shader name in `gen_vulkan_spv.py`
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="*unary_op*"
Parsing buck files: finished in 16.1 sec
Creating action graph: finished in 0.7 sec
Downloaded 75/3986 artifacts, 248.89 Mbytes, 96.3% cache miss (for updated rules)
Building: finished in 08:24.0 min (100%) 2571/2571 jobs, 2571/2571 updated
Total time: 08:40.9 min
BUILD SUCCEEDED
Running main() from xplat/third-party/gmock/googletest-1.12.1/googletest/src/gtest_main.cc
Note: Google Test filter = *unary_op*
[==========] Running 4 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 4 tests from VulkanAPITest
[ RUN ] VulkanAPITest.unary_op_exp
[ OK ] VulkanAPITest.unary_op_exp (479 ms)
[ RUN ] VulkanAPITest.unary_op_exp_
[ OK ] VulkanAPITest.unary_op_exp_ (1 ms)
[ RUN ] VulkanAPITest.unary_op_sqrt
[ OK ] VulkanAPITest.unary_op_sqrt (2 ms)
[ RUN ] VulkanAPITest.unary_op_sqrt_
[ OK ] VulkanAPITest.unary_op_sqrt_ (2 ms)
[----------] 4 tests from VulkanAPITest (485 ms total)
[----------] Global test environment tear-down
[==========] 4 tests from 1 test suite ran. (485 ms total)
[ PASSED ] 4 tests.
```
All tests:
https://www.internalfb.com/phabricator/paste/view/P786547213
Run clang-format on shader files and `UnaryOp.cpp`
Differential Revision: D47271856
Pull Request resolved: https://github.com/pytorch/pytorch/pull/104994
Approved by: https://github.com/SS-JIA