Skip to main content

用于调用ascendc编写的算子

Project description

1 功能描述

由于在ascendc算子开发过程中运行算子比较复杂,为了简化算子的运行,将运行算子变成可以用python直接调用的函数。所以编写了此代码。

2 安装

pip install l0n0lacl

3 运行算子实例

3.1 先切换到cann环境,比如我的环境是:

source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh

3.2 设置要用到的设备

export ASCEND_VISIBLE_DEVICES=0,1

3.3 运行算子

from l0n0lacl import *
import numpy as np
import ctypes
fn = 算子运行器('Abs')
a = np.random.uniform(-2, -1, (2000,2000))
a_out = np.zeros_like(a)
out = fn(a, a_out)
print(a)
print(out[1])

a = 张量(a).切换到设备(1)
a_out = 张量(a_out).切换到设备(1)
out = fn(a, a_out)
print(a)
print(out[1])

fn = 算子运行器('InplaceAcos')
a = np.random.uniform(-1, 1, (2000,2000)).astype(np.float16)
print(a)
out = fn(a)
print(out[0])

fn = 算子运行器('AdaptiveAvgPool2d')
a = np.random.uniform(0, 100, (2, 100, 100)).astype(np.float32)
out = np.zeros((2, 3, 3), dtype=a.dtype)
a = 张量(a, 格式=张量格式.NCL)
out = 张量(out).变更格式(张量格式.NCL)
output = fn(a, [3, 3], out)
print(output[2])


fn = 算子运行器('Addmv')
s = np.ones(3, dtype=np.float32)
mat = np.random.uniform(-1, 1, (3, 4)).astype(np.float32)
vec = np.random.uniform(-1, 1, 4).astype(np.float32)
alpha = 标量(1.2)
beta = 标量(1.1)
out = np.zeros(3, dtype=np.float32)
output = fn(s, mat, vec, alpha, beta, out, ctypes.c_int8(1))
print(output[-2])

3.3 算子查找顺序

如果 ${NO_VENDORS_OPP} != '1':
    查找 ${ASCEND_OPP_PATH}/vendors目录(自己写的算子默认安装目录) 
查找 ${ASCEND_HOME_PATH}/lib64/libopapi.so 支持的算子(也就是官方算子包)
  • NO_VENDORS_OPP 如果不需要使用自定义算子, 可以添加此环境变量
  • ASCEND_OPP_PATH cann自带环境变量 在(source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh)时设置
  • ASCEND_HOME_PATHcann自带环境变量在(source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh)时设置

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

l0n0lacl-2.0.3.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

l0n0lacl-2.0.3-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file l0n0lacl-2.0.3.tar.gz.

File metadata

  • Download URL: l0n0lacl-2.0.3.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for l0n0lacl-2.0.3.tar.gz
Algorithm Hash digest
SHA256 c6420c700cb4b6c5421fa93d745c3a2480550fb69f16b5c5aa657ae7289173a0
MD5 b1dbdaabe363fae5c9c6a5824e740fac
BLAKE2b-256 fda410dcee52e06cdad60d26443e1f76ec810bf9a1c7740d29457ccaf1c3ed41

See more details on using hashes here.

File details

Details for the file l0n0lacl-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: l0n0lacl-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for l0n0lacl-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9f5bc9fc465513b5e40ea516b2f4fe5172985ea1bc4f8002b932180543a3a027
MD5 ca844a19a552ac6d1b1af3e067d166ad
BLAKE2b-256 64a0a184b4768e32ecb1c588514f6b70cdf0a0e3776da6d99560b233b72ed90c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page