Allow multiple devices in one design and add device configuration op (aiex.configure)#2532
Allow multiple devices in one design and add device configuration op (aiex.configure)#2532andrej merged 33 commits intoXilinx:mainfrom
aiex.configure)#2532Conversation
aiex.configure)
|
Looks like tests finally pass. After review, I'll squash the commits before merging and get rid of the meaningless commit messages. |
fifield
left a comment
There was a problem hiding this comment.
I get some failures when running with Vitis.
A number of them are like this:
********************
FAIL: AIE_TEST :: unit_tests/aie/05_tiledma/aie.mlir (15 of 189)
******************** TEST 'AIE_TEST :: unit_tests/aie/05_tiledma/aie.mlir' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
error: input MLIR must contain at least one aie.device
This one manually uses elf_file attribute and failed:
/work/acdc/build/aie/test/unit_tests/chess_compiler_tests_aie2/02_precompiled_kernel/aie.mlir.prj/input_with_addresses.mlir:9:17: error: 'aie.core' op When `elf_file` attribute is specified, core body must be empty (consist of exactly one `aie.end` op).
%core_1_3 = aie.core(%tile_1_3) {
| If the `elf_file` attribute is present, no MLIR besides a terminator may be | ||
| present in the core; in that case, the binary file linked dictates what | ||
| will run in the core. The path specified should is relative to the MLIR | ||
| file. |
There was a problem hiding this comment.
Why does the presence of the attribute require that the core body is deleted? It seems to hard code things for the current aiecc use case.
There was a problem hiding this comment.
I thought it would be more clear this way, removing the ambiguity of which code gets executed if both the attribute is there and there is code inside the body. If this complicates some use case I'm not aware of, I can remove this restriction.
There was a problem hiding this comment.
I have left this check in place for now. Let me know if you want to discuss it further.
python/compiler/aiecc/main.py
Outdated
| if (opts.cdo or opts.xcl or opts.pdi) and opts.execute: | ||
| await self.process_cdo(input_physical_with_elfs_str, device_name) | ||
|
|
||
| processes = [] |
There was a problem hiding this comment.
This erases the process.append of line 1519, resulting in:
/work/vitis-venv/bin/python3.12 /work/acdc/build/aie/bin/aiecc.py --aiesim --xchesscc --xbridge --no-compile-host /work/acdc/aie/test/unit_tests/chess_compiler_tests_aie2/03_simple/aie.mlir -I/work/acdc/build/aie/runtime_lib/x86_64/test_lib/include -L/work/acdc/build/aie/runtime_lib/x86_64/test_lib/lib -ltest_lib /work/acdc/aie/test/unit_tests/chess_compiler_tests_aie2/03_simple/test.cpp
/work/acdc/build/aie/python/aie/compiler/aiecc/main.py:1528: RuntimeWarning: coroutine 'FlowRunner.gen_sim' was never awaited
Oh, that's not good. Looks like none of the tests in Would it be fine to refactor those to require the code be wrapped in an |
The current state of things was a convenience for backward compatibility. IIRC VC1902 is assumed if |
| let hasVerifier = 1; | ||
| } | ||
|
|
||
| def AIE_RunOp: AIEX_Op<"run", [HasParent<"ConfigureOp">]> { |
There was a problem hiding this comment.
Could you please add a short summary for this operation?
| ConversionPatternRewriter &rewriter) const override { | ||
| Operation *Op = flowOp.getOperation(); | ||
| DeviceOp d = flowOp->getParentOfType<DeviceOp>(); | ||
| assert(d); |
There was a problem hiding this comment.
Does this assert check if a device was found? Since asserts can be disabled in certain compilation modes it might be better to use an if statement.
There was a problem hiding this comment.
Indeed, replaced the assert with a proper error.
lib/Targets/AIETargetLdScript.cpp
Outdated
| DenseMap<TileID, Operation *> tiles; | ||
| DenseMap<Operation *, SmallVector<BufferOp, 4>> buffers; | ||
|
|
||
| DeviceOp targetOp = AIE::DeviceOp::getForSymbolInModule(module, deviceName); |
| global = rewriter.create<memref::GlobalOp>( | ||
| op->getLoc(), name, rewriter.getStringAttr("private"), memrefType, | ||
| initVal, true, nullptr); | ||
| global = getOrCreateDataMemref(rewriter, dev, op.getLoc(), words); |
There was a problem hiding this comment.
I implemented the optimization you've refactored here, but I had been wondering if it should be removed instead. The reason is that I had to disable it for some cases in a downstream branch because unlike the current scheme, some runtime schemes patch the address in the data before writing it to the shim dma (e.g. cert, maybe "new elf" too). So the data can't be shared in those cases.
There was a problem hiding this comment.
I just factored it out because I ended up using it multiple places and didn't want to have code duplication. Hopefully that should make removing it (or somehow adapting it to the cert case) easier down the line too.
|
I think this PR is ready for re-review @fifield @AndraBisca @jgmelber Changes since the last round:
Note: CI failed during setup for building the wheels, trying to install the qemu package. I'll try restarting it, this seems unrelated to the PR. Tests that failed/didn't run on main******************** Unsupported Tests (219): AIE_TEST :: Integration/Dialect/AIEVec/64x32x64xbf16_4x8x4_packed_gemm/gemm-64x32x64-bf16.mlir AIE_TEST :: Integration/Dialect/AIEVec/i16xi16_gemm/gemm64_int16.mlir AIE_TEST :: Integration/Dialect/AIEVec/i32xi32_gemm/gemm64_int32.mlir AIE_TEST :: Integration/Dialect/AIEVec/ml_unaligned_read/i16/kernel.mlir AIE_TEST :: Integration/Dialect/AIEVec/ml_unaligned_read/i32/kernel.mlir AIE_TEST :: Integration/Dialect/AIEVec/ml_unaligned_read/i8/kernel.mlir AIE_TEST :: Integration/Dialect/AIEVec/v1_unaligned_read/i16/kernel.mlir AIE_TEST :: Integration/Dialect/AIEVec/v1_unaligned_read/i32/kernel.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_abs_v16/bf16_abs.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_abs_v32/bf16_abs.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_cast_float/bf16_cast_float.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_ceil_v16/bf16_ceil.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_ceil_v32/bf16_ceil.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_erf_v16/bf16_erf.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_erf_v32/bf16_erf.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_floor_v16/bf16_floor.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_floor_v32/bf16_floor.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_neg/bf16_neg.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_sigmoid_v16bf16/bf16_sigmoid.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_sigmoid_v32bf16/bf16_sigmoid.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16_tanh/bf16_tanh.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_add_elem/bf16xbf16_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_mul_elem/bf16xbf16_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_mul_elem_16x1024_broadcast_1/bf16xbf16_mul_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_mul_elem_16x1024_broadcast_1/bf16xbf16_mul_elem_2d_broadcast_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_mul_elem_16x1024_broadcast_1024/bf16xbf16_mul_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_mul_elem_16x1024_broadcast_1024/bf16xbf16_mul_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_mul_elem_16x1024_broadcast_1024/bf16xbf16_mul_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sel/bf16xbf16_sel.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem/bf16xbf16_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_16x1024_broadcast_1/bf16xbf16_sub_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_16x1024_broadcast_1/bf16xbf16_sub_elem_2d_broadcast_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_16x1024_broadcast_1024/bf16xbf16_sub_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_16x1024_broadcast_1024/bf16xbf16_sub_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_16x1024_broadcast_1024/bf16xbf16_sub_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_dyn_size/bf16xbf16_sub_elem_dyn_size.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xbf16_sub_elem_dyn_size_2d/bf16xbf16_sub_elem_dyn_size_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xfloat_add_elem/bf16xfloat_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xfloat_add_elem/floatxbf16_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xfloat_sub_elem/bf16xfloat_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bf16xfloat_sub_elem/floatxbf16_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/bfloat16_cast.mlir AIE_TEST :: Integration/Dialect/TOSA/float_abs_v16/float_abs.mlir AIE_TEST :: Integration/Dialect/TOSA/float_cast.mlir AIE_TEST :: Integration/Dialect/TOSA/float_cast_bf16/float_cast_bf16.mlir AIE_TEST :: Integration/Dialect/TOSA/float_neg/float_neg.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_add_elem/floatxfloat_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sel/floatxfloat_sel.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sub_elem/floatxfloat_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sub_elem_16x1024_broadcast_1/floatxfloat_sub_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sub_elem_16x1024_broadcast_1/floatxfloat_sub_elem_2d_broadcast_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sub_elem_16x1024_broadcast_1024/floatxfloat_sub_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sub_elem_16x1024_broadcast_1024/floatxfloat_sub_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/floatxfloat_sub_elem_16x1024_broadcast_1024/floatxfloat_sub_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_abs_v32/i16_abs.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_arithmetic_right_shift/i16_arithmetic_right_shift.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_bitwise_and/i16_bitwise_and.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_bitwise_not/i16_bitwise_not.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_bitwise_or/i16_bitwise_or.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_bitwise_xor/i16_bitwise_xor.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_cast.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_cast_i32/i16_cast_i32.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_cast_i8/i16_cast_i8.mlir AIE_TEST :: Integration/Dialect/TOSA/i16_neg/i16_neg.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_add_elem/i16xi16_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem/i16xi16_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem_16x1024_broadcast_1/i16xi16_mul_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem_16x1024_broadcast_1/i16xi16_mul_elem_2d_broadcast_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem_16x1024_broadcast_1024/i16xi16_mul_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem_16x1024_broadcast_1024/i16xi16_mul_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem_16x1024_broadcast_1024/i16xi16_mul_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_mul_elem_i32/i16xi16_mul_elem_i32.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sel/i16xi16_sel.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sub_elem/i16xi16_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sub_elem_16x1024_broadcast_1/i16xi16_sub_elem_2d_broadcast_1d_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sub_elem_16x1024_broadcast_1/i16xi16_sub_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sub_elem_16x1024_broadcast_1024/i16xi16_sub_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sub_elem_16x1024_broadcast_1024/i16xi16_sub_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi16_sub_elem_16x1024_broadcast_1024/i16xi16_sub_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_add_elem_v16/i16xi32_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_add_elem_v16/i32xi16_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_add_elem_v32/i16xi32_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_mul_elem/i16xi32_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_mul_elem/i32xi16_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_sub_elem_v16/i16xi32_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_sub_elem_v16/i32xi16_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i16xi32_sub_elem_v32/i16xi32_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_abs_v16/i32_abs.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_arithmetic_right_shift/i32_arithmetic_right_shift.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_bitwise_and/i32_bitwise_and.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_bitwise_not/i32_bitwise_not.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_bitwise_or/i32_bitwise_or.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_bitwise_xor/i32_bitwise_xor.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_cast.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_cast_i16/i32_cast_i16.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_cast_i8/i32_cast_i8.mlir AIE_TEST :: Integration/Dialect/TOSA/i32_neg/i32_neg.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_add_elem/i32xi32_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_mul_elem/i32xi32_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_mul_elem_16x1024_broadcast_1/i32xi32_mul_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_mul_elem_16x1024_broadcast_1/i32xi32_mul_elem_2d_broadcast_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_mul_elem_16x1024_broadcast_1024/i32xi32_mul_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_mul_elem_16x1024_broadcast_1024/i32xi32_mul_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_mul_elem_16x1024_broadcast_1024/i32xi32_mul_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sel/i32xi32_sel.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem/i32xi32_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1/i32xi32_sub_elem_2d_broadcast_1d_unit_dim_v16.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1/i32xi32_sub_elem_2d_broadcast_1d_unit_dim_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1/i32xi32_sub_elem_2d_broadcast_scalar_v16.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1/i32xi32_sub_elem_2d_broadcast_scalar_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1024/i32xi32_sub_elem_2d_broadcast_1d_reshape_v16.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1024/i32xi32_sub_elem_2d_broadcast_1d_reshape_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1024/i32xi32_sub_elem_2d_broadcast_1d_v16.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1024/i32xi32_sub_elem_2d_broadcast_1d_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1024/i32xi32_sub_elem_2d_broadcast_2d_v16.mlir AIE_TEST :: Integration/Dialect/TOSA/i32xi32_sub_elem_16x1024_broadcast_1024/i32xi32_sub_elem_2d_broadcast_2d_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_abs_v64/i8_abs.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_arithmetic_right_shift/i8_arithmetic_right_shift.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_bitwise_and/i8_bitwise_and.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_bitwise_not/i8_bitwise_not.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_bitwise_or/i8_bitwise_or.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_bitwise_xor/i8_bitwise_xor.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_cast.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_cast_i16/i8_cast_i16.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_cast_i32/i8_cast_i32.mlir AIE_TEST :: Integration/Dialect/TOSA/i8_neg/i8_neg.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_add_elem/i16xi8_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_add_elem/i8xi16_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_mul_elem_v16/i8xi16_mul_elem_v16.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_mul_elem_v32/i16xi8_mul_elem_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_mul_elem_v32/i8xi16_mul_elem_v32.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_sub_elem/i16xi8_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi16_sub_elem/i8xi16_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi32_add_elem/i32xi8_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi32_add_elem/i8xi32_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi32_mul_elem/i32xi8_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi32_mul_elem/i8xi32_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi32_sub_elem/i32xi8_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi32_sub_elem/i8xi32_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_add_elem/i8xi8_add_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem/i8xi8_mul_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem_16x1024_broadcast_1/i8xi8_mul_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem_16x1024_broadcast_1/i8xi8_mul_elem_2d_broadcast_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem_16x1024_broadcast_1024/i8xi8_mul_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem_16x1024_broadcast_1024/i8xi8_mul_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem_16x1024_broadcast_1024/i8xi8_mul_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_mul_elem_i32/i8xi8_mul_elem_i32.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sel/i8xi8_sel.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sub_elem/i8xi8_sub_elem.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sub_elem_16x1024_broadcast_1/i8xi8_sub_elem_2d_broadcast_1d_scalar.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sub_elem_16x1024_broadcast_1/i8xi8_sub_elem_2d_broadcast_1d_unit_dim.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sub_elem_16x1024_broadcast_1024/i8xi8_sub_elem_2d_broadcast_1d.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sub_elem_16x1024_broadcast_1024/i8xi8_sub_elem_2d_broadcast_1d_reshape.mlir AIE_TEST :: Integration/Dialect/TOSA/i8xi8_sub_elem_16x1024_broadcast_1024/i8xi8_sub_elem_2d_broadcast_2d.mlir AIE_TEST :: Integration/Dialect/TOSA/ui8_cast.mlir AIE_TEST :: Integration/julia_by_lines/aie.mlir AIE_TEST :: Targets/AIEGenerateXAIE/test_herd_xaie0.mlir AIE_TEST :: Targets/AIETargetAirbin/aie.mlir AIE_TEST :: create-cores/test_dma2.mlir AIE_TEST :: create-cores/test_dma3.mlir AIE_TEST :: create-flows/maxiter_err_test.mlir AIE_TEST :: create-locks/test_lock7.mlir AIE_TEST :: create-locks/test_lock_shimdma.mlir AIE_TEST :: create-packet-flows/test_create_packet_flows6.mlir AIE_TEST :: create-packet-flows/test_pktflow_weight_pusher.mlir AIE_TEST :: herd-routing/test_herd_routing0.mlir AIE_TEST :: herd-routing/test_herd_routing1.mlir AIE_TEST :: herd-routing/test_herd_routing2.mlir AIE_TEST :: merge-buffers/test_buffer_merge0.mlir AIE_TEST :: npu-xrt/add_one_ctrl_packet_col_overlay/run.lit AIE_TEST :: npu-xrt/add_one_objFifo/test.py AIE_TEST :: npu-xrt/add_one_objFifo_elf/test.py AIE_TEST :: npu-xrt/adjacent_memtile_allocation/onelargefifo_on_2memtile/ext_to_core_L2_placed.py AIE_TEST :: npu-xrt/adjacent_memtile_allocation/onelargefifo_on_3memtile/ext_to_core_L2_placed.py AIE_TEST :: npu-xrt/adjacent_memtile_allocation/twofifo_one_2memtile/ext_to_core_L2_placed.py AIE_TEST :: npu-xrt/cascade_flows/run.lit AIE_TEST :: npu-xrt/device_width/aie2.py AIE_TEST :: npu-xrt/dma_complex_dims/aie2.py AIE_TEST :: npu-xrt/dma_task_large_linear/aie2.py AIE_TEST :: npu-xrt/dynamic_object_fifo/nested_loops/aie2.py AIE_TEST :: npu-xrt/dynamic_object_fifo/ping_pong/aie2.py AIE_TEST :: npu-xrt/dynamic_object_fifo/reduction/aie2.py AIE_TEST :: npu-xrt/dynamic_object_fifo/sliding_window/aie2.py AIE_TEST :: npu-xrt/dynamic_object_fifo/two_core_sliding_window/aie2.py AIE_TEST :: npu-xrt/matrix_multiplication_using_cascade/run.lit AIE_TEST :: npu-xrt/matrix_transpose/aie2.py AIE_TEST :: npu-xrt/memtile_dmas/blockwrite_using_locks/run.lit AIE_TEST :: npu-xrt/memtile_dmas/writebd/run.lit AIE_TEST :: npu-xrt/memtile_dmas/writebd_tokens/run.lit AIE_TEST :: npu-xrt/objectfifo_repeat/compute_repeat/aie2.py AIE_TEST :: npu-xrt/objectfifo_repeat/distribute_repeat/aie2.py AIE_TEST :: npu-xrt/objectfifo_repeat/init_values_repeat/aie2.py AIE_TEST :: npu-xrt/objectfifo_repeat/simple_repeat/aie2.py AIE_TEST :: npu-xrt/runtime_cumsum/run.lit AIE_TEST :: npu-xrt/tile_mapped_read/run.lit AIE_TEST :: npu-xrt/two_col/run.lit AIE_TEST :: npu-xrt/vec_vec_add_objfifo_init/aie2.py AIE_TEST :: npu-xrt/vector_scalar_using_dma/run.lit AIE_TEST :: python/python_passes.py AIE_TEST :: unit_tests/aie/12_julia/aie.mlir AIE_TEST :: unit_tests/aie/13_julia_fp/aie.mlir AIE_TEST :: unit_tests/aie/27_single_L1_single_lock/aie2.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/bf16_exp_lut/bf16_exp_lut-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/bf16_max_reduce/bf16_max_reduce-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/bf16xbf16_mul_elem/bf16xbf16_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/bf16xbf16_mul_elem/bf16xbf16_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/bf16xbf16_mul_elem_2/bf16xbf16_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/floatxfloat_mul_elem/floatxfloat_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/floatxfloat_mul_elem/floatxfloat_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i16xi16_mul_elem/i16xi16_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i16xi16_mul_elem/i16xi16_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i16xi16_mul_elem_2/i16xi16_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i16xi16_mul_elem_2/i16xi16_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i32xi32_mul_elem/i32xi32_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i32xi32_mul_elem/i32xi32_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i8xi8_mul_elem/i8xi8_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i8xi8_mul_elem/i8xi8_mul_elem-llvm.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i8xi8_mul_elem_2/i8xi8_mul_elem-llvm-scalar.mlir AIE_TEST :: unit_tests/aievec_tests/aie2/i8xi8_mul_elem_2/i8xi8_mul_elem-llvm.mlir |
|
(Sorry, I updated the branch by mistake; too many CIs are failing and I had this PR open to check which CIs are failing across PRs). |
|
Can now definitely confirm that after local testing, the exact same tests fail as on Waiting on #2612 to get merged because this conflicted with that, then we should be good. |
| std::unique_ptr<mlir::OperationPass<DeviceOp>> | ||
| createAIEGenerateColumnControlOverlayPass(); | ||
| std::unique_ptr<mlir::OperationPass<DeviceOp>> createAIEAssignTileCtrlIDsPass(); | ||
| std::unique_ptr<mlir::OperationPass<DeviceOp>> createAIESetELFforCorePass(); |
There was a problem hiding this comment.
| std::unique_ptr<mlir::OperationPass<DeviceOp>> createAIESetELFforCorePass(); |
I think this was removed?
There was a problem hiding this comment.
Removed, thanks for catching this
| #include "mlir/IR/BuiltinAttributes.h" | ||
|
|
||
| namespace xilinx::AIEX { | ||
| const char defaultRuntimeSequenceName[] = "sequence"; |
There was a problem hiding this comment.
Could this be in the op like RuntimeSequenceOp::defaultName and still work in tablegen?
Or better,
let extraClassDeclaration = [{
llvm::StringRef getDefaultName() { return "sequence"; }
}];There was a problem hiding this comment.
I think I can do it but it would have to be a static method, since the getDefaultRuntimeSequenceName() gets called when the builder is instantiated but before the Op gets created.
| AIEDevice::npu1_3col, AIEDevice::npu1}; | ||
| auto device = builder.create<DeviceOp>(loc, devices[columns - 1]); | ||
| auto device = builder.create<DeviceOp>( | ||
| loc, devices[columns - 1], StringAttr::get(builder.getContext(), "main")); |
There was a problem hiding this comment.
Is the intent to use the default name here? I know the getDefaultName() doesn't exist, but maybe like,
| loc, devices[columns - 1], StringAttr::get(builder.getContext(), "main")); | |
| loc, devices[columns - 1], StringAttr::get(builder.getContext(), DeviceOp::getDefaultName())); |
Or have a constructor that fills in the default,
| loc, devices[columns - 1], StringAttr::get(builder.getContext(), "main")); | |
| loc, devices[columns - 1]); |
| parser.add_argument( | ||
| "--ctrlpkt-dma-seq-name", | ||
| dest="ctrlpkt_dma_seq_name", | ||
| default="{0}_ctrlpkt_dma_seq.bin", | ||
| help="Output filename for control packet DMA sequence. `{0}` is replaced with the device name.", |
| @@ -0,0 +1,82 @@ | |||
| //===- sequence_with_configures.mlir ---------------------------*- MLIR -*-===// | |||
There was a problem hiding this comment.
| //===- sequence_with_configures.mlir ---------------------------*- MLIR -*-===// | |
| //===- sequence_with_configures_bad.mlir -----------------------*- MLIR -*-===// |
There was a problem hiding this comment.
discussed that it's fine to leave this one merged in this PR
There was a problem hiding this comment.
Is the change to bootgen intended?
There was a problem hiding this comment.
no, thanks for catching
There was a problem hiding this comment.
I think the changes to this file are unrelated.
There was a problem hiding this comment.
indeed, thanks for catching
2ef466d to
ec9add7
Compare
…(`aiex.configure`) (Xilinx#2532)
aiecc.pywill generate separate files for each deviceaiex.configureop which for now has no lowering yet (this will be useful for future PRs)Examples of new syntax: