1、Ascend C是一种使用(A)作为前端语言的算子开发工具
A.
C/C++
B.
Python
C.
Java
D.
Go
正确答案:A
2、NPU卡的计算核心是(AICORE)
3、Ascend C编程API主要是向量计算API和矩阵运算API,计算API都是(SIMD)样式
4、下列关于核函数的声明,正确的是(D)
A.
extern “C” global aicore void Test1(gm uint8_t* x, uint8_t* y);
B.
extern “C” aicore void Test2(gm uint8_t* x, gm uint8_t* y);
C.
extern “C” global aicore int32_t Test3(gm uint8_t* x, uint8_t* y);
D.
extern “C” global aicore void Test4(gm half* x, gm uint8_t* y);
选D
5、使用NPU模式调用核函数时,哪个参数规定了核函数在几个核上执行(blockDim)
6、下列哪个接口会将LocalTensor放入VECIN的Queue中(EnQue)
7、我们在使用Ascend C提供的API实现算子时,如果追求高性能,那么我们应该使用(0级接口)
8、在开发算子时,如果所需算法Ascend C没有对应API可以调用,那么我们可以(通过Ascend C已提供的API组合实现算法运算)
9、
我们在编写host侧的核函数调用程序时,通过(
CCE_KT_TEST)宏定义来区分CPU和NPU侧
10、md5sum是进行结果比对的方式之一,开发者可以自己选择合适的比对方式
11、以下哪些是使用Ascend C开发自定义算子的优势(ABCD)
A.
C/C++原语编程,最大化匹配用户的开发习惯
B.
编程模型屏蔽硬件差异,编程范式提高开发效率
C.
多层级API封装,从简单到灵活,兼顾易用与高效
D.
孪生调试,CPU侧模拟NPU侧的行为,可优先在CPU侧调试
ABCD
12、SPMD 数据并行计算原理包含ACD
A.
启动一组进程,他们运行的相同程序
B.
每个进程都处理所有的数据切片,对输入数据分片只做一个任务的处理
C.
把待处理数据切分,把切分后数据分片分发给不同进程处理
D.
每个进程对自己的数据分片进行3个任务T1、T2、T3的处理
ACD
13、AI Core内部核心组件包含(ABC)
A.
计算单元
B.
存储单元
C.
搬运单元
D.
同步单元
ABC
14、Ascend C的矢量编程范式把算子实现流程分为哪些基本任务(ACE)
A.
CopyIn
B.
Aggregate
C.
CopyOut
D.
Split
E.
Compute
ACE
15、当输入数据量很大时,下列那些操作可能会导致算子性能下降(ABCD)
A.
每个运算核上运算的数据相同
B.
代码实现内不使用double buffer
C.
算子实现时使用3级接口代替0级接口
D.
数据切分时,每块数据量尽可能小
ABCD
16、下列哪些操作会导致算子运算结果错误(ABC)
A.
输入GlobalTensor调用SetGlobalBuffer时,传入的数据地址起始位始终为原始数据起始位
B.
算子实现类内创建LocalTensor时未使用对应的算子输入输出类型
C.
算子实现类内未实现计算结果搬出操作
D.
算子实现未使用double buffer
ABC
17、开发算子实现代码时,下列说法正确的是(AD)
A.
如果输入输出数据量很小,就不需要使用double buffer
B.
如果输入输出数据量很大,就不需要使用double buffer
C.
矢量编程中搬出数据的存放位置为VECCALC
D.
每个运算核上运行的算子实现代码相同
AD
18、编写CPU侧的核函数运行验证程序,会使用到以下列表中的哪些接口(ABC)
A.
GmAlloc
B.
ICPU_RUN_KF
C.
GmFree
D.
aclrtMallocHost
E.
aclrtMemcpy
ABC
19、编写NPU侧的核函数运行验证程序,会使用到以下列表中的哪些接口(CDE)
A.
GmAlloc
B.
GmFree
C.
aclrtMalloc
D.
aclrtMallocHost
E.
aclrtMemcpy
CDE
20、AddCustom算子核函数的调用和验证需要准备哪些代码文件(ABCDE)
A.
调用算子的应用程序:main.cpp
B.
核函数源文件:add_custom.cpp
C.
真值数据生成脚本:add_custom.py
D.
一键化执行脚本:run.sh
E.
编译cpu侧或npu侧运行的算子的编译工程文件:CMakeLists.txt
ABCDE