| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[MLIR][GPUCommon] Remove typed pointer support (#70735) This commit removes the GPUCommon's lowering support for typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502 | 2 年前 | |
[MLIR][GPUCommon] Remove typed pointer support (#70735) This commit removes the GPUCommon's lowering support for typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502 | 2 年前 | |
[mlir][spirv] Add GpuToLLVM cconv suited to Vulkan, migrate last tests (#123384) This commit is a follow-up to 99a562b3cb17e89273ba0fe77129f2fb17a19381, which migrated some of the mlir-vulkan-runner tests to mlir-cpu-runner using a new pipeline and set of wrappers. That commit could not migrate all the tests, because the existing calling conventions/ABIs for kernel arguments generated by GPUToLLVMConversionPass were not a good fit for the Vulkan runtime. This commit fixes this and migrates the remaining tests. With this commit, mlir-vulkan-runner and many related components are now unused, and they will be removed in a later commit (see #73457). The old calling conventions require both the caller (host LLVM code) and callee (device code) to have compile-time knowledge of the precise argument types. This works for CUDA, ROCm and SYCL, where there is a C-like calling convention agreed between the host and device code, and the runtime passes through arguments as raw data without comprehension. For Vulkan, however, the interface declared by the shader/kernel is in a more abstract form, so the device code has indirect access to the argument data, and the runtime must process the arguments to set up and bind appropriately-sized buffer descriptors. This commit introduces a new calling convention option to meet the Vulkan runtime's needs. It lowers memref arguments to {void*, size_t} pairs, which can be trivially interpreted by the runtime without it needing to know the original argument types. Unlike the stopgap measure in the previous commit, this system can support memrefs of various ranks and element types, which unblocked migrating the remaining tests. | 1 年前 | |
[mlir][gpu] Add GPU target support to gpu-to-llvm. **For an explanation of these patches see D154153.** This patch modifies the lowering of gpu.module & gpu.launch_func in the gpu-to-llvm pass, allowing the usage of the new GPU compilation mechanism in the patch series ending in D154153. Instead of removing Modules, this patch preserves the module if it has target attributes so that the gpu-module-to-binary pass can later serialize them. Instead of lowering the kernel calls to the LLVM dialect, this patch primarily updates the operation's arguments, leaving the job of converting the operation into LLVM instructions to the translation stage. The reason for not lowering the operation to LLVM at this stage is that kernel launches do not have a single one-to-one representation in LLVM. For example, a kernel launch can be represented by a call to a kernel stub, like in CUDA or HIP. Kernel launches are also intrinsically linked to the binary associated with the call, and the binaries are converted during translation. Depends on D154149 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D154152 | 2 年前 | |
[mlir][gpu] Update LaunchFuncOp lowering in GPU to LLVM (#94991) This patch updates the lowering of LaunchFuncOp in GPU to LLVM to only legalize the operation with the converted operands, effectively removing the lowering used by the old serialization pipeline. It also removes all remaining uses of the old gpu serialization infrastructure in gpu-to-llvm. See [Compilation overview | 'gpu' Dialect - MLIR docs](https://mlir.llvm.org/docs/Dialects/GPU/#compilation-overview) for additional information on the target attributes compilation pipeline that replaced the old serialization pipeline. | 2 年前 | |
Fix bug in gpu.memcpy lowering for dynamically shaped operands. (#128820) Compute the number of elements to be copied by multiplying dim sizes along all the dimensions. | 1 年前 | |
[mlir][gpu] Support dynamic_shared_memory Op with vector dialect (#74475) gpu.dynamic_shared_memory currently does not get lowered when it is used with vector dialect. The reason is that vector-to-llvm conversion is not included in gpu-to-nvvm. This PR includes that and adds a test. | 2 年前 | |
[MLIR][AMDGPU] Add ability to do 16-bit Memset with HIP APIs (#108587) CC: @krzysz00 @manupak | 1 年前 | |
[MLIR][GPUCommon] Remove typed pointer support (#70735) This commit removes the GPUCommon's lowering support for typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502 | 2 年前 | |
[mlir][Vector] Move vector.mask canonicalization to folder (#140324) This MR moves the canonicalization that elides empty vector.mask ops to folders. | 1 年前 | |
[MLIR][GPUCommon] Remove typed pointer support (#70735) This commit removes the GPUCommon's lowering support for typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502 | 2 年前 | |
[mlir][LLVM] Switch undef for poison for uninitialized values (#125629) LLVM itself is generally moving away from using undef and towards using poison, to the point of having a lint that caches new uses of undef in tests. In order to not trip the lint on new patterns and to conform to the evolution of LLVM - Rename valious ::undef() methods on StructBuilder subclasses to ::poison() - Audit the uses of UndefOp in the MLIR libraries and replace almost all of them with PoisonOp The remaining uses of undef are initializing uninitialized memrefs, explicit conversions to undef from SPIR-V, and a few cases in AMDGPUToROCDL where usage like %v = insertelement <M x iN> undef, iN %v, i32 0 %arg = bitcast <M x iN> %v to i(M * N) is used to handle "i32" arguments that are are really packed vectors of smaller types that won't always be fully initialized. | 1 年前 | |
[mlir][GPU] Expand LLVM function attribute copies (#76755) Expand the copying of attributes on GPU kernel arguments during LLVM lowering. Support copying attributes from values that are already LLVM pointers. Support copying attributes, like noundef, that aren't specific to (the pointer parts of) arguments. | 2 年前 | |
[MLIR][GPUToROCDL] Remove typed pointer support (#70908) This commit removes the support for lowering GPU to ROCDL dialect with typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502 | 2 年前 | |
[MLIR][GPUToROCDL] Remove typed pointer support (#70908) This commit removes the support for lowering GPU to ROCDL dialect with typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502 | 2 年前 | |
Fix what seems to be a silly bug in gpu.set_default_device rewriting. Smoke test included. (#75756) | 2 年前 | |
[mlir][Vector] Remove Vector{Load|Store}ToMemrefLoadLowering (#121454) 0-d vectors are supported now and so these patterns are no longer required. This covers a part of this issue https://github.com/llvm/llvm-project/issues/112913 . Additionally this removes %arg2 in mlir/test/Conversion/GPUCommon/transfer_write.mlir and renames %arg3 to %arg2 as %arg2 was originally not required. | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 |