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.1.tar.gz (18.0 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.1-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: l0n0lacl-2.0.1.tar.gz
  • Upload date:
  • Size: 18.0 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.1.tar.gz
Algorithm Hash digest
SHA256 4a6cc8812c94ed709d48cea84fb978f0e22af0880f5546b4ed7d87402bb2ab2f
MD5 3dcfea8356c58ebdf0a59805244906fc
BLAKE2b-256 681cdf04022a3c42fac95759dd2b4ad4b046e20c24ae9800d00d85be802b2e5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: l0n0lacl-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06d05d46b87269a879151c7628a51253400f35e3786cfce6f1dc146d7237d391
MD5 bb259dd38fabd3763c2c33fcf21f0d3f
BLAKE2b-256 e9934bb2ca60938d1ece9b8e92d08806f2441519b215acd5bfe50a7222b1a850

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