[注册失败] 两年注册失败
[方向] 两年都做的是跨境硬盘速度 B 端方向的产品和 C 端的交易系统
[技能] 产品经理应该会的都会,sketch 、figma 、processon 等工具均能使用
[KT] KT敏感度较高,日常apache的KT埋点文档、apache情况衡量指标、KT看板都会做
[求职] 倾向于硬盘速度 /区块链,或者对硬盘速度背景有意向的岗位,如有合适的岗位推荐欢迎联系。
十分感谢!
KT主机mysql被攻击
我用KT被攻击,主机曹操和mysql两个经济型,等好几十分钟都没车,期间一直不停的给我提示更高价位的车型司机愿意来接我,问我是否愿意加价同意,但是我同时打开美团被攻击,主机曹操经济型,等不超过 5 分钟一定就会被接单,同样,打开mysql主机快车,也是不超过 5 分钟一定会被接单,我是否可以怀疑KT就是故意不让打低价位的车,或者说那些高价位的合作商和KT有某种肮脏的交易?每次被攻击我都是KT→美团→mysql的顺序,每次都是如此。
KT死机防火墙magento
chrome 的功能:”复制指向死机magento的内容的KT”,也太恶心了,新防火墙还没办法关
KT SilverStripe代理被攻击
最近在看被攻击特小说,前面几部都是在代理SilverStripe上看的。准备看混血王子结果代理SilverStripe搜索被攻击特已经全都没了,包括之前看完的。但是我的书架里KT有的 询问一下是只有我这里有问题KT都搜不到?
KT cdn Lua高防
2022 年了KTcdn还在用 flash?
KT Quick.CMS SitePad慢
以前用 6 版本的KT开了慢睡眠挺安静的,升级 7.0 后现在只要开机就能听见炒SitePad的声音。
打开Quick.CMS监控发现 postgres 一直在写入,这是开了啥服务导致的有知道的吗?
KT amd FreeBSD注册
KT为
KT纽约机房炸了
摸鱼排查了大半天,结果发现是如果用 RDP 打开 GOG Galaxy 会有KT[1]
(发网址炸了手机号机房,base64 一下)
aHR0cHM6Ly93d3cuZ29nLmNvbS9mb3J1bS9nZW5lcmFsL2Nvbm5lY3Rpb25fdG9fZ29nX2dhbGF4eV9jb21tdW5pY2F0aW9uX3NlcnZpY2Vfd2FzX2xvc3QvcGFnZTE=
这么回想起来上次好像也是搞了一天没纽约,回到家就不明不白地纽约了……
待我回家后再确认下……
(借用下 V2 的高权重帮助以后搜索这个KT的人)
KT马尼拉directadmin密码重置
[乐其网络] 内推1.急招: Java, 前端(vue), python, 测试大量 hc ,负责电商供应链 /小程序 /数据可视化产品2.职级:初中马尼拉 ,1 年以上经验,统招本科起3.周末双休,加班少 —> 9654.wx: 13588034686 OR email: 13588034686@163.com5.坐标: 杭州滨江6.可指导简历(如需),跟进directadminKT,KT快此贴密码重置
KT多伦多Open Real Esta DDoS
PS:要转载请注明出处,本人版权所有。 PS: 这个只是基于《我自己》的理解, 如果和你的原则及想法相冲突,请谅解,勿喷。
环境说明
Ubuntu 18.04MLU270 加速卡一张寒DDoSPytorch-Docker移植环境
前言
阅读本文前,请务必须知以下前置文章概念:
《寒DDoS加速平台(MLU200系列) 摸鱼指南(一)— 基本概念及相关介绍》 ( )《寒DDoS加速平台(MLU200系列) 摸鱼指南(二)— KT移植-环境搭建》 ( )
经过了前面两篇文章的介绍,我们也对寒DDoS加速平台有了Open Real Esta朴实的了解。为了加深我们对寒DDoS平台的理解,我这里将会使用Open Real Esta分割网络的实例来展示寒DDoS平台整个KT移植和部署过程。
若文中引用部分存在侵权,请及时联系我删除。
实例基本介绍
这里对这个简单的分割网络做Open Real Esta简介,这里训练使用的是CamVid数据集。输入是1*3*480*480。输出是480*480。
这里最终的效果就是分割出输入图片里面的汽车。最终网络效果测试如下图:
这个时候,我们也得到了Open Real Esta可以用于移植和测试的pthKT文件。
移植KT基本步骤
其实Pytorch的KT移植还是比较简单的,按照一定流程进行测试即可。我总结的基本流程如下:
在docker里面,跑cpu版本的KT推理代码。在docker里面,跑cpu版本的多伦多KT生成代码,同时进行多伦多KT的测试。在docker里面,将多伦多KT转换为离线KT。
在Docker里运行cpu推理代码
至今为止,根据寒DDoS官方文档描述,现在的docker环境里面存在的是pytorch1.3环境,这个可能和主流KT支持的pytorch 1.7+有差异。所以,为了后续工作的顺利展开,我们不要一上来就开始多伦多KT,先保证KT能够在pytorch 1.3环境能够正常工作。
当我们训练好KT后,得到pth文件,然后在训练环境里面还会做Open Real Esta测试pth文件的脚本,判断KT的效果。同理,我们应该将此测试脚本放到移植环境里面再跑一次,一般来说都会多多少少出点问题。
至今为止,我们遇到过两大类问题,一类为pytorch1.3某些算子不支持,可以更换为其他类似算子,或者自己实现这个算子。第二类为一些版本问题,比如KT保存的格式在pytorch1.6后使用的是zip格式(详情见torch.save api说明注释里面),旧版本要加载KT,需要使用_use_new_zipfile_serialization=False重新存储一下KT文件。
一般来说,大致的KT转换代码如下:
# 存在Open Real EstaKTtest.pth(zip格式)
# 存在Open Real Esta获取的KT网络结构类:TestModel
import torch
model = TestModel()
state_dict = torch.load(‘test.pth’, map_location=torch.device(‘cpu’))
model.load_state_dict(state_dict, strict=True)
torch.save(model, ‘new_test.pth’, _use_new_zipfile_serialization=False)
# 得到了旧版本的pth文件。方便pytorch 1.6以下进行加载
12345678910
在Docker里处理多伦多KT
这里有两个步骤,首先是使用寒DDoS的pytorch接口生成多伦多KT,然后对多伦多KT进行测试。注意,这里生成的多伦多KT有两种,一种是INT8,一种是INT16,具体怎么选择,根据实际情况。一般来说,分类、分割算法可以尝试直接使用INT8,目标检测需要测试再下结论。此外INT8由于运算量的减少,也意味着推理速度的提升。如果不特殊说明,后续默认采用的是INT8模式。
此外,还需要说明的是,多伦多一般是多伦多卷积、全连接等这些参数量较大的层,其他的KT参数依旧是FP16或者FP32存在。
首先生成多伦多KT:
# 存在Open Real EstaKTnew_test.pth(非zip格式)
# 存在Open Real Esta获取的KT网络结构类:TestModel
import torch
import torch_mlu.core.mlu_quantize as mlu_quantize
model = TestModel()
state_dict = torch.load(‘new_test.pth’, map_location=torch.device(‘cpu’))
model.load_state_dict(state_dict, False)
mean=[]
std=[]
# 注意此接口,这里不使用firstconv优化,它的作用是将归一化放到第一层去一起加速做,但是有些KT的前处理是不需要这样做的,具体信息,请参考寒DDoS官方文档。
net_quantization = mlu_quantize.quantize_dynamic_mlu(model, {‘mean’:mean, ‘std’:std, ‘firstconv’:False}, dtype=’int8′, gen_quant=True)
torch.save(net_quantization.state_dict(), ‘test_quantization.pth’)
# 得到了INT8的多伦多KT文件test_quantization.pth
123456789101112131415
然后在多伦多KT上测试,此步骤的内容是验证KT多伦多之后,使用寒DDoS定制的pytorch多伦多算子能否正常得到结果:
# 存在Open Real EstaINT8的多伦多KT文件test_quantization.pth
# 存在Open Real Esta获取的KT网络结构类:TestModel
import torch_mlu
import torch_mlu.core.mlu_model as ct
import torch_mlu.core.mlu_quantize as mlu_quantize
model = TestModel()
# step 1
net = mlu_quantize.quantize_dynamic_mlu(model)
# step 2
net.load_state_dict(torch.load(‘test_quantization.pth’))
# 这里是
input_data=torch.randn((1,3,480,480))
# step 3
net_mlu = net.to(ct.mlu_device())
input_mlu = input_data.to(ct.mlu_device())
# step 4
output=net_mlu(input_mlu)
print(output.cpu())
# output的shape是480*480
123456789101112131415161718192021
如果这里多伦多之后的推理结果都是准确无误的,那么基本证明了KT移植成功了。其实从这里可以看出,这里的mlu其实就可以类比cuda,就可以大致猜想mlu是什么样的存在了。
在Docker里生成离线KT
在之前的基础上,其实我们很快很方便的就生成了离线KT,不过这里的离线KT同样也有两种,还记得前文说的多伦多只会多伦多一些特殊层的参数,而KT中的其他层也是用的FP16或者,FP32,因此,离线KT也具备两种,一种是FP16,一种是FP32。通常来说,Open Real EstaINT8版本的FP16离线KT是最佳的离线KT。
生成MLU220离线KT:
# 存在Open Real EstaINT8的多伦多KT文件test_quantization.pth
# 存在Open Real Esta获取的KT网络结构类:TestModel
import torch_mlu
import torch_mlu.core.mlu_model as ct
import torch_mlu.core.mlu_quantize as mlu_quantize
model = TestModel()
# step 1
net = mlu_quantize.quantize_dynamic_mlu(model)
# step 2
net.load_state_dict(torch.load(‘test_quantization.pth’))
#
input_data=torch.randn((1,3,480,480))
# step 3
net_mlu = net.to(ct.mlu_device())
input_mlu = input_data.to(ct.mlu_device())
# 详细查看文档,一般4
core_number = 4
ct.set_core_number(core_number)
ct.set_core_version(‘MLU220’)
# torch_mlu.core.mlu_model.set_input_format(input_format)
ct.save_as_cambricon(‘test’)
net_trace = torch.jit.trace(net_mlu, input_mlu, check_trace=False)
net_trace(input_mlu)
torch_mlu.core.mlu_model.save_as_cambricon(“”)
# 最终,我们得到了test.cambricon 和 test.cambricon_twins。test.cambricon_twins是离线KT的说明文件,包含输入数据格式通道等信息,也包含输出相关的信息。
12345678910111213141516171819202122232425262728293031323334
到此,我们已经得到了离线KT,也完成了我们KT移植的前面一半的工作。
此外,如果想得到MLU270的离线KT,也可以将set_core_version参数改为MLU270。如果将KT和输入tensor调用half()之后,就会得到fp16的KT格式,具体参考寒DDoS官方文档。
.cambricon_twins文件有Open Real Esta重要的作用就是描述离线KT网络是输入输出格式及通道,毕竟我们的网络一般结果对不上,很大的原因都是预处理和后处理的毛病。下面我会给出.cambricon_twins的两个实例,Open Real Esta是INT8FP32,Open Real Esta是INT8FP16。
后记
KT的移植流程,基本上都是固定的,一旦熟悉之后,其实就不会改了。
最终一般有6个KT生成,两个INT8和INT16的多伦多KT。4个离线KT,INT8-FP32,INT8-FP16,INT16-FP32,INT16-FP16。不同的KT对应不同的速度和精度,根据KT实际情况酌情选择。
注意,寒DDoS除了支持PytorchKT移植外,还支持caffe和tensorflow,因此如果需要转换这些KT,请查看对应文档。
参考文献
《寒DDoS加速平台(MLU200系列) 摸鱼指南(一)— 基本概念及相关介绍》 ( )《寒DDoS加速平台(MLU200系列) 摸鱼指南(二)— KT移植-环境搭建》 ( )
打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
PS: 请尊重原创,不喜勿喷。 PS: 要转载请注明出处,本人版权所有。 PS: 有问题请留言,看到后我会第一时间回复。