jax.extend.ffi.ffi_lowering#
- jax.extend.ffi.ffi_lowering(call_target_name, *, operand_layouts=None, result_layouts=None, backend_config=None, **lowering_args)[source]#
为外部函数接口 (FFI) 目标构建一个 lowering 规则。
默认情况下,此 lowering 规则可以使用输入和输出抽象值来计算自定义调用的输入和输出类型和形状,假设为行优先布局。
请注意,传递给此函数的布局(作为元组)应该是次到主顺序(如 XLA 期望的那样),而不是主到次顺序,后者用于
ffi_call()
和DeviceLocalLayout
。如果关键字参数被传递给 lowering 规则,这些参数将被视为属性,并添加到 backend_config 中。
- 参数:
call_target_name (str) – 自定义调用目标的名称。
operand_layouts (Sequence[FfiLayoutOptions] | None | None) – 每个操作数的布局(维度顺序)序列。默认情况下,操作数被假定为行优先。
result_layouts (Sequence[FfiLayoutOptions] | None | None) – 每个结果的布局(维度顺序)序列。默认情况下,结果被假定为行优先。
backend_config (Mapping[str, ir.Attribute] | str | None | None) – 自定义调用的配置数据。传递给 lowering 规则的任何关键字参数都将添加到此字典中。
lowering_args (Any) – 如果作为额外的参数提供给此函数,则传递给
mlir.custom_call()
的任何其他参数也将被传递。
- 返回类型:
mlir.LoweringRule