技术解读倚天 ECS 实例 — Arm 芯片的 Python-AI 算力优化

深度学习技术在图像识别、搜索推荐等领域得到了广泛应用。近年来各大 CPU 厂商也逐渐把 AI 算力纳入了重点发展方向,通过《Arm 芯片 Python-AI 算力优化》我们将看到龙蜥社区 Arm 架构 SIG(Special Interest Group) 利用最新的 Arm 指令集优化 Python-AI 推理 workload 的性能。

倚天ECS实例的AI推理软件优化

阿里云推出的倚天Arm ECS实例,拥有针对AI场景的推理加速能力,我们将了解加速的原理以及以及相关的软件生态适配。

卷积神经网络(CNN)在图像和语音领域使用广泛,神经网络算法相比传统的算法消耗了更多算力。为了探索对计算的优化,我们进一步看到AlexNet模型(一种CNN)的推理过程的各个层的计算资源消耗占比。

可以看到名为conv[1-5]的5个卷积层消耗了90%的计算资源,因此优化CNN推理的关键就是优化卷积层的计算。

我们进一步来看如何对图像应用卷积核:

  1. 使用im2col根据卷积核尺寸,将图像转化为若干块(patch)
  2. 将多个卷积核展开成若干向量
  3. 对由图像块组成的矩阵和由多个卷积核展开组成的矩阵应用矩阵乘法

上面一页的计算应用了矩阵乘法操作,为什么我们不采用更加直接的迭代计算方式,而是采用需要额外内存的矩阵乘法呢?这里有两个关键因素:

  • 深度学习的卷积计算量很大,典型计算需要涉及5000万次乘法和加法操作,因此对计算的优化十分重要
  • 计算机科学家们已经深入探索了矩阵乘法操作,矩阵乘法操作可以被优化得非常快。

fortran世界中,GEMM(general matrix multiplication)已经成为一个通用操作:

该操作通过对数据重新排列,精心设计计算过程,利用多线程和向量指令,可以比自己实现的朴素版本快十倍以上。因此使用矩阵运算带来的收益相比额外的开销是值得的。<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中使用Word2Vec,可以通过gensim库来实现。首先,需要导入相应的库和模块,如gensim和word2vec。然后,可以调用word2vec模型的不同方法来进行预处理和模型训练。 在代码中,首先需要判断文件是否存在,并进行相关预处理操作,如对文本进行分词。接下来,可以选择是否训练模型,如果已经存在训练好的模型,则可以直接加载。 一旦模型加载完毕,可以使用模型的方法来计算词语之间的相似度或相关程度。例如,可以使用similarity方法来计算两个词的相似度,或使用most_similar方法来获取某个词的相关词列表。 总之,使用Word2Vec的Python代码示例如下所示: ```python from gensim.models import word2vec import os # 预处理和模型训练 def preprocess_and_train(cut_file, save_model_name): # 进行预处理操作,如分词等 # ... # 判断是否需要训练模型 if not os.path.exists(save_model_name): # 进行模型训练 # ... print('模型训练完成') else: print('此训练模型已经存在,不用再次训练') # 加载已训练好的模型 def load_model(save_model_name): model = word2vec.Word2Vec.load(save_model_name) return model # 计算词语相似度 def calculate_similarity(model, word1, word2): similarity = model.similarity(word1, word2) return similarity # 获取相关词列表 def get_similar_words(model, word, topn): similar_words = model.most_similar(word, topn=topn) return similar_words # 主函数 def main(): cut_file = '倚天屠龙记.txt' save_model_name = '倚天屠龙记.model' preprocess_and_train(cut_file, save_model_name) model = load_model(save_model_name) word1 = "赵敏" word2 = "韦一笑" similarity = calculate_similarity(model, word1, word2) print("赵敏和韦一笑的相似度为:", similarity) word = "张三丰" similar_words = get_similar_words(model, word, topn=10) print("和张三丰最相关的词有:") for item in similar_words: print(item<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [中文word2vec的python实现](https://blog.csdn.net/sinat_29694963/article/details/79177832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Word2Vec Python源代码](https://download.csdn.net/download/happymoi/10133811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值