• [技术干货] 在Win10游戏本中搭建MindSpore-GPU的深度学习环境
    背景自从华为开源了MIndSpore深度学习框架,题主就始终惦记着要充分利用手里有且仅有的游戏本,给它加持一套高大上的支持GPU的MindSpore环境,但让人泪奔的是——MindSpore-gpu不兼容Windows!!!虽然MindSpore也能在Windows里运行,但那是CPU的安装版。可连GPU都不能用还有什么资格配叫深度学习机?那么,在Windows上运行Docker行不行呢?这个空子没法钻。那么,安装VMWare虚拟机行不行呢?这个选项大概率也走不通。对这些问题有兴趣的同学请参考这些资源:https://www.mindspore.cn/installhttps://bbs.huaweicloud.com/forum/thread-81854-1-1.htmlhttps://bbs.huaweicloud.com/forum/thread-82387-1-1.htmlhttps://www.v2ex.com/t/673666那么,装双系统行不行呢?肯定行,不过上个世纪就已经体验过两个系统来回切换的“安全方案”,那些痛苦至今还会在梦里找回来。怕了。再添一台机器总可以了吧?肯定能完美解决,但这不是本文讨论的问题,所以不差钱的朋友完全没有必要继续在本文上浪费时间了。难道说只能弃Windows转投Ubuntu的怀抱吗?可是使用习惯已经被微软悉(WU)心(QING)培(DU)养(HAI)了二十多年,又怎么可能能说改就改呢?即使改变也要有个过渡吧。为了让Windows和MindSpore-GPU和睦共处,题主启动了“金字塔”项目,前前后后折腾了近一个月,经历了各种幻想、折磨、无奈和期待,终于苦尽甘来,成功在一台Win10游戏本上让华为MindSpore-gpu版本狂奔起来。之所以名为“金字塔”,盖因层层叠叠安装了一大堆虚拟机,Docker,最后就是为了顶上MindSpore-GPU的耀眼夺目。闲话到此,以下干货。一、“金字塔”项目目标:在一台机Win10游戏本上,运行MindSpore-gpu:在Win10系统中开启WSL2,运行虚拟机虚拟机可以使用宿主机GPU资源虚拟机运行Docker运行在Docker中的MindSpore-gpu能够利用主机GPU资源进行计算加速二、系统环境:Docker镜象版本:mindspore-gpu :1.0.0Docker版本: 19.03.13, build 4484c46d9dWSL虚拟机OS版本:Ubuntu 18.04WSL版本:WSL2宿主机CUDA版本: 11.2宿主机OS版本:Windows10家庭版2004(OS内部版本 20236.1000)宿主机硬件:HP暗影精灵II, Intel HD630(集显)+Nvidia GTX1050Ti(独显)三、避大坑Windows 开发版(也就是OS内部版本)从20211到20215概率性不能启动WSL虚拟机。NVIDIA Drivers for CUDA on WSL不支持Windows开放版20211-20221。如果当前主机是这几个版本,一定想好要不要往下走。谁也不能保证微软和Nvidia未来的更新是不是完全可用,请关闭Windows自动更新,并做好全系统备份。宿主机不能安装Docker Desktop,与虚拟机Docker冲突。四、安装过程1、加入Windows Insider计划我们的目标是让WSL虚拟机使用GPU资源。其实微软的WSL2已经很友好了,目前任何发行版都可以开启并运行Linux虚拟机。不过,想要虚拟机使用GPU的资源,就必须加入Windows Insider计划,激活Winows开发版。使用Microsoft Store帐户登录Windows Insider主页https://insider.windows.com/zh-cn/,然后按照向导一步步往下走,都是常规的操作,如果网站慢就耐心多等一会。打开”设置“,选择“更新与安全”,选择“Windows预览体验计划”,选择“Dev渠道”。重新进入”更新与安全“,选择”检查更新“,系统会自动下载并安装最新开发版更新包。耐心等待升级完成。安装完成后提示重新启动,现在不想重启也没关系,等到第3步激活WSL2之后再重启。重启之后按win+R,输入"winver"可以看到版本更新了。2、安装NVIDIA Drivers for CUDA on WSL这部分是跟显卡有关系的活。根据https://developer.nvidia.com/cuda/wsl/download指南下载对应的软件包。我的显卡是GTX1050Ti,所以下载GFORCE DRIVER。下载启动时会提示用Nvidia开发者帐户登录。如果还没有的话,根着网页指南走就好了,都是常规的操作。下载文件名叫460.20_gameready_win10-dch_64bit_international.exe,一个646M的大文件,需要耐心等。下载完成后执行安装。安装完成也不必重启。下一步激活WSL2之后需要重启,就两步合一步了。AMD显卡的朋友请自行实验,我没有设备帮不上忙。3、激活WSL2WSL2已经是Window内置的特性,开启非常简单。打开”设置“,选择”应用“,选择右上角”程序和功能“(如果看不到,就最大化窗口)。在弹出的程序和功能窗口中,选择“启动或关闭Windows功能”;在弹出的Windows功能窗口中选择”Windows Subsystem for Linux“和”虚拟机平台“。重启机器去https://aka.ms/wsl2kernel,根据指南下载并安装升级的Linux内核文件wsl_update_x64.msi。WSL2运行真正的Linux内核的,想象一下在Windows上运行的是”真正的“Linux机器就有些小爽。以管理员身份,打开PowerShell窗口,输入以下命令激活WSL2PS C:UsersLinux> wsl --set-default-version 24、安装Ubuntu打开Microsoft Sotre,在搜索框里输入Ubuntu,挑你喜欢的版本。最左边不带版本号的就是20.04。我最终使用了18.04。20.04老报错。选择版本,等待下载完成(系统会有提示),然后在启动菜单中可以看到“Ubuntu-18.04 LTS”。点击启动虚拟机。弹出Ubuntu终端窗口,系统自动安装,等一会安装成功,系统提示输入用户名和密码。这里有一个错误提示,是因为宿主机的备份卷被锁了,子系统访问不到。这里展现了用WSL2的好处之一是:子系统可以把宿主机的文件夹挂在自己下面,同样的,宿主机也可以直接访问子系统的目录,这样一来,相互之间拷贝文件简直不要太方便,不用cp,mv的敲半天。输入用户名和密码,进入子系统。5、在Ubuntu中安装Docker在Ubuntu终端窗口中输入以下命令,安装Docker。$ curl https://get.docker.com | sh如果系统提示Docker已经存在了,果断ctrl+C终止就行了。6、 安装MindSpore Dcoker镜像根据https://gitee.com/mindspore/mindspore?_from=gitee_search上的MindSpore官方指南,下载并安装mindspore-gpu:1.0.0 Dcoker镜像。更新nvidia docker list$ DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID)$ sudo curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -$ sudo curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list安装nvidia-container-toolkit$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2重启docker服务$ sudo service docker stop$ sudo service docker startWSL2虚拟机运行在init 1状态,因此无法systemctl命令。再次重启docker服务$ sudo service docker stop$ sudo service docker start在Ubuntu终端窗口中输入以下命令,把mindspore-gpu:1.0.0 Dcoker镜像拉到本机来。$ sudo docker pull mindspore/mindspore-gpu:1.0.0把MindSpore docker跑起来sudo docker run -it --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.0.0 /bin/bash终于到了测试这一步了。在docker内,打开python窗口。在docker里,操作员获得管理员的权限,所以不用每条命令都要打sudo了。输入下面的脚本import numpy as npimport mindspore.context as contextfrom mindspore import Tensorfrom mindspore.ops import functional as F context.set_context(mode=context.PYNATIVE_MODE, device_target="GPU") x = Tensor(np.ones([1,3,3,4]).astype(np.float32))y = Tensor(np.ones([1,3,3,4]).astype(np.float32))print(F.tensor_add(x, y))如果得到下面的结果,就大功造成了!从资源管理器GPU1的图表上看出这段脚本消耗了GPU的资源。五、后记题主本来只是一枚Linux小白,一个月以前对Docker除了名字更是一无所知,在“金字塔”项目执行过程中真可谓真是大坑小坑不断落,大包小包满脑袋。回想着各种错误带着诚意扑面而来时的目瞪狗呆不知所措,每次一有新的开发版推出就满心欢喜地以为问题跑光光最后又一次次失望,各种大神的各种神贴的有话留三分不得不在不同的环境下怼怼试度,有时候真是把机器拍碎的心都有。话说无知无谓。就在发稿之前的一刻,题主大脑抽筋想再试一下Windows上直接跑Docker,安装了Docker Desktop,然后虚拟机里的Docker容器文件全不见了!!!以为辛苦工作的成果全都飞升了,当时真想嚎啕大哭,后来想了半天,感觉有可能是宿主机Docker Desktop把虚拟机的Docker给接管了?试着把宿主机Docker Desktop删除重启,才恢复如常了。反正为什么会出问题也不知道,问题解决了也不知道为什么。所以奉劝各位朋友,要是精神上能够受得了折磨,不妨也试着弄一弄。友情提示:开发版可以提前尝鲜新功能,代价就是不稳定,切记如果决定使用,那么一定要把可以运行的环境备份好。在一个持续变化的环境里,再怎么强调备份都不过分。当然,技术流弊的,做这点事儿自然不在话下。不太差钱的就不如多搞台机器来直接装Ubuntu。实在不差钱就干脆到华为云上租个Atlas主机更加好了。————————————————原文链接:https://blog.csdn.net/weixin_39843151/article/details/111328711
  • [经验交流] 用python写一个猜数字程序
    用python写一个猜数字程序 非常简单........ 下面程序如果有bug或者语法错误地方 请评论import random 倒入生成随机数库 如果没有这个库 打开cmd输入 pip install random 不出意外的话 等待一会就下载好了m = random.randint(1,20) 这里是生成的随机数范围 我写的是1-10之间count = 10 count = 10 是一局可以输入十次错误的结果 如果大于十次就结束程序while True: 这里使用while True 循环 try: n = int (input("输入1-100之间的整数输入0退出")) try处理输入非数字的 except: print("请正确输入") 这里如果输入不是数字就是输出 请正确输入 break; 并且结束程序 if n < m: 如果输入的数字是Int类型的 就开始进行游戏 n < m 你输入的数要是小于随机生成的数 count-=1; 那么十次次数就减一次 因为你猜错了 if count==0: 这里判断你次数还又多少 如果0结束游戏 print("次数结束游戏") break; print(count) print("猜小了") 如果你输入的数字小于随机生成的数 就输出 猜小了 elif n > m: 这的 elif类似于 java c#等语言的 else if 如果你输入的数字大于随机生成的数 count -= 1; if count==0: print("次数用完结束游戏") break; print("猜大了") 输出猜大了 elif (n==m): 这里是如果你输入的数等于随机生成的数 print("猜对了") 就猜对了 False; else: if n==00: break; False;
  • [热门活动] 我要去HDC.Cloud 2021②】参与注册和闯关活动,三合一数据线、数据通信数据、自拍杆、华为手环等,每天送!
    我来闯关,我为华为数据通信开发者社区点赞!
  • 罗技Gpro有线游戏鼠标 的一个问题
    这个“【新品】罗技Gpro有线游戏鼠标”,鼠标线有多长呢?
  • [热门活动] 我来闯关,我为华为数据通信开发者社区点赞!
    hhhh
  • [技术干货] python实战 之猜数字
    一、导入库12import randomimport time 二、注册用户我们用变量与input实现12name = str(input('请输入用户名:'))print('欢迎您,'+name) 三、注册年龄这里我们得用except制作乱输文本就游戏结束的程序乱输文本就结束12345try:    age = int(input('请输入年龄:'))except ValueError:    print('非法输入')    age = 30000顺便把年龄设为30000[滑稽]再根据年龄大小分配金币 四、分配金币123456789101112if age <10:    gold = 500    print('您的初始金币为500')if age <20 and age >10:    gold = 1000    print('您的初始金币为1000')if age >20 and age <30:    gold = 1500    print('您的初始金币为1500')if age >30 and age <1000:    gold = 200    print('年龄过大,您的初始金币为200')用if语句保证金币小于10000,如果等于10000,游戏结束 五、if判断 1123if gold !=10000:    Game_start = str(input('是否开始游戏?(True或False)'))    while gold !=10000:接下来就是最重要的游戏部分了,认真!我们还得用if语句判断Game_start变量为True,并创建一个随机数列表 六、if与随机数1234if Game_start =='True':    list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]    while list_123 ==10:        list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]然后设定回答变量和正确答案与错误答案 七、回答、正确与错误1234567answer = str(input('请猜数(big或small):'))if list_123[0] + list_123[1] + list_123[2] >10:    result = 'big'    error_result = 'small'if list_123[0] + list_123[1] + list_123[2] <10:    result = 'small'    error_result = 'big'还得用if语句判断正确、错误与非法输入的答案 八、if判断 212345678910111213if answer ==result:    print('您赢了!')    gold = gold + 100    print('随机数为'+str(list_123))    print('您现在有'+str(gold)+'金币')elif answer ==error_result:    print('您输了...')    print('随机数为'+str(list_123))    gold = gold - 100    print('您现在有'+str(gold)+'金币')else:    print('非法输入')    gold = 10000再制作购买道具的模块太长了我懒得写一句一句解析 九、购买道具123456789101112131415161718192021222324252627282930if gold ==2000 or gold ==3000 or gold ==4000 or gold ==5000 or gold ==6000 or gold ==7000 or gold ==8000 or gold ==9000:    answer = str(input('您现在可以购买道具,是否购买?(True或False):'))    if answer =='True':        print('请说出要购买der道具')        print('*'*41)        print('*金币翻倍器[现有的]   金币翻倍器[得到的]*')        print('*     2000G                  1500G      *')        print('*'*41)        answer = str(input('请说出要购买der道具(金币翻倍器[现有的]说1,金币翻倍器[得到的]说2):'))        if gold >2000 and answer =='1':            gold = gold - 2000            answer = int(input('请说出要翻der倍数:'))            gold = str(gold * answer)            print('您现在有'+gold+'金币')            gold = int(gold)        elif gold >1500 and answer =='2':            gold = gold - 1500            answer = int(input('请说出要翻der倍数:'))            gold_mang = 100 * answer            gold = gold + gold_mang            print('您现在有'+str(gold)+'金币')            gold = int(gold)            else:                print('没有这个道具,游戏结束')                gold = 10000            elif answer =='False':                print('继续游戏')            else:                print('非法输入')                gold = 10000我写到一半发现没有把上面的桥接上,所以现在来桥接 十、桥接12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879import randomimport timename = str(input('请输入用户名:'))print('欢迎您,'+name)try:    age = int(input('请输入年龄:'))except ValueError:    print('非法输入')    age = 30000    gold = 10000if age <10:    gold = 500    print('您的初始金币为500')if age <20 and age >10:    gold = 1000    print('您的初始金币为1000')if age >20 and age <30:    gold = 1500    print('您的初始金币为1500')if age >30 and age <1000:    gold = 200    print('年龄过大,您的初始金币为200')if gold !=10000:    Game_start = str(input('是否开始游戏?(True或False)'))    while gold !=10000:        if Game_start =='True':            list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]            while list_123 ==10:                list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]            answer = str(input('请猜数(big或small):'))            if list_123[0] + list_123[1] + list_123[2] >10:                result = 'big'                error_result = 'small'            if list_123[0] + list_123[1] + list_123[2] <10:                result = 'small'                error_result = 'big'            if answer ==result:                print('您赢了!')                gold = gold + 100                print('随机数为'+str(list_123))                print('您现在有'+str(gold)+'金币')            elif answer ==error_result:                print('您输了...')                print('随机数为'+str(list_123))                gold = gold - 100                print('您现在有'+str(gold)+'金币')            else:                print('非法输入')                gold = 10000            if gold ==2000 or gold ==3000 or gold ==4000 or gold ==5000 or gold ==6000 or gold ==7000 or gold ==8000 or gold ==9000:                answer = str(input('您现在可以购买道具,是否购买?(True或False):'))                if answer =='True':                    print('请说出要购买der道具')                    print('*'*41)                    print('*金币翻倍器[现有的]   金币翻倍器[得到的]*')                    print('*     2000G                  1500G      *')                    print('*'*41)                    answer = str(input('请说出要购买der道具(金币翻倍器[现有的]说1,金币翻倍器[得到的]说2):'))                    if gold >2000 and answer =='1':                        gold = gold - 2000                        answer = int(input('请说出要翻der倍数:'))                        gold = str(gold * answer)                        print('您现在有'+gold+'金币')                        gold = int(gold)                    elif gold >1500 and answer =='2':                        gold = gold - 1500                        answer = int(input('请说出要翻der倍数:'))                        gold_mang = 100 * answer                        gold = gold + gold_mang                        print('您现在有'+str(gold)+'金币')                        gold = int(gold)                    else:                        print('没有这个道具,游戏结束')                        gold = 10000                elif answer =='False':                    print('继续游戏')                else:                    print('非法输入')                    gold = 10000其实到这里我们就基本完成了,但如果只写到这里会有很多bug,不想看了也可以就玩这个版本还剩了一些代码,我也懒得写了,直接完整代码 十一、完整代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990import randomimport timename = str(input('请输入用户名:'))print('欢迎您,'+name)try:    age = int(input('请输入年龄:'))except ValueError:    print('非法输入')    age = 30000    gold = 10000if age <10:    gold = 500    print('您的初始金币为500')if age <20 and age >10:    gold = 1000    print('您的初始金币为1000')if age >20 and age <30:    gold = 1500    print('您的初始金币为1500')if age >30 and age <1000:    gold = 200    print('年龄过大,您的初始金币为200')if gold !=10000:    Game_start = str(input('是否开始游戏?(True或False)'))    while gold !=10000:        if Game_start =='True':            list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]            while list_123 ==10:                list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]            answer = str(input('请猜数(big或small):'))            if list_123[0] + list_123[1] + list_123[2] >10:                result = 'big'                error_result = 'small'            if list_123[0] + list_123[1] + list_123[2] <10:                result = 'small'                error_result = 'big'            if answer ==result:                print('您赢了!')                gold = gold + 100                print('随机数为'+str(list_123))                print('您现在有'+str(gold)+'金币')            elif answer ==error_result:                print('您输了...')                print('随机数为'+str(list_123))                gold = gold - 100                print('您现在有'+str(gold)+'金币')            else:                print('非法输入')                gold = 10000            if gold ==2000 or gold ==3000 or gold ==4000 or gold ==5000 or gold ==6000 or gold ==7000 or gold ==8000 or gold ==9000:                answer = str(input('您现在可以购买道具,是否购买?(True或False):'))                if answer =='True':                    print('请说出要购买der道具')                    print('*'*41)                    print('*金币翻倍器[现有的]   金币翻倍器[得到的]*')                    print('*     2000G                  1500G      *')                    print('*'*41)                    answer = str(input('请说出要购买der道具(金币翻倍器[现有的]说1,金币翻倍器[得到的]说2):'))                    if gold >2000 and answer =='1':                        gold = gold - 2000                        answer = int(input('请说出要翻der倍数:'))                        gold = str(gold * answer)                        print('您现在有'+gold+'金币')                        gold = int(gold)                    elif gold >1500 and answer =='2':                        gold = gold - 1500                        answer = int(input('请说出要翻der倍数:'))                        gold_mang = 100 * answer                        gold = gold + gold_mang                        print('您现在有'+str(gold)+'金币')                        gold = int(gold)                    else:                        print('没有这个道具,游戏结束')                        gold = 10000                elif answer =='False':                    print('继续游戏')                else:                    print('非法输入')                    gold = 10000            if gold ==0:                print('金币没了,游戏结束')                gold = 10000        elif Game_start =='False':            print('欢迎游玩,下次再见!')            gold = 10000        else:            print('非法输入')            gold = 10000print('游戏结束,再见!')time.sleep(10)
  • [热门活动] 【我要去HDC.Cloud 2021②】参与注册和闯关活动,三合一数据线、数据通信数据、自拍杆、华为手环等,每天送!
    HDC.Cloud2021来啦!关于HDC、关于华为云数通你知道多少呢?来大会现场,参与数据通信活动,每天大奖等你拿!活动时间:4月24-26日一、数据通信大会现场活动规划本次活动分为3个区域,每个区域会有不同的活动规则,具体细则如下:活动区域:完成注册、答题和抽奖区域。在这里,你只要完成注册与答题,参与我们的活动,就可以拿走精美奖品。同时,这里也是是我们的服务中心,你可以在这里获取数据通信的相关咨询,你有任何问题第一次时间可以在这里得到解答。前店区域:完成学习数据通信理论技术区域。在这里,我们会有园区网络、数据中心网络、数据通信认证、数据通信AI、云网络管理以及网络安全等领域来驻扎,邀请各个领域华为专家坐镇,带你学习数据通信的前沿技术。后厂区域:完成数据通信技动手实践区域。在这里,我们会有园区网络、数据中心网络、数据通信认证、数据通信AI、云网络管理以及开发者社区等领域来驻扎。提供专业的设备,真实环境让你动手实操,带你走进数据通信的海洋。二、闯关活动指引伴随着整个大会的开展,我们数据通信整个闯关活动细则如下:只要你完成其中任何一项,就有机会获得奖励;完成3个关卡通关,就有机会赢取华为手环4,你有木有心动了~~~备注:完成1-3关卡,表现突出者,可以获取1张数据通信技术精英挑战赛(Day2)门票。名额有限,先到先得!其他活动只要在我们数据通信开发者社区注册报名,每天都有机会拿走大奖哦!具体的抽奖时间如下:三、奖品展示注册数据通信开发者社区,参与答题与实操演练、数据通信认证实践,多重好礼让你拿到手软哦~~三、活动入口通过扫描下面的二维码或点击链接,就可以进入到我们活动中。https://devzone.huawei.com/cn/network/portal.html四、数通开发者社区       数通开发者社区是华为专为开发者打造的“学习、开发、验证、交流”一站式支持与服务平台,该平台涵盖多领域知识,承载了智简园区网络,智简数据中心网络,广域网路,数通网络开放可编程。为了响应广大开发者需求,还提供了开发者交流、API Explorer、多媒体课件、SDK工具包、开发者工具以及远程实验室六大工具,让开发者轻松开发。      想要具体了解,可以点击该网址https://devzone.huawei.com/cn/network/portal.html进行体验学习。
  • [技术干货] 游戏机电池供电的SRAM解决方案
    游戏机是一种主要用于娱乐,使用只向获得许可的软件开发者开放的源代码,以电视机或其他专用显示器以及专用输入设备的电脑系统。其与个人计算机最大的区别在于源代码和软件的封闭性。人类用来进行游戏的机械电子装置都可称作游戏机。随着电子技术、信息产业的发展,以及电影、漫画产业的带动,电子游戏机便成为了游戏机的实际代表。由于其更专业化的游戏性表现,因此即便电脑水平如此发达的今天,PC游戏仍然无法替代游戏机的强势地位。 高速非易失性缓存游戏机使用SRAM密度(介于4 Mbit至32 Mbit之间的任何值)作为用于存储运行时处理数据的缓存。这些应用中使用的高速缓存必须是非易失性的,以在电源故障期间保存重要的游戏数据。目前RAM高速缓存使用备用电池来实现非易失性,并使用3.0 V电池来在断电期间保留RAM内容,如图1所示。 由于人们越来越倾向于消除电池,因此其他替代性非易失性存储技术在游戏机设计中变得越来越流行。赛普拉斯已开发出一种无电池的单片非易失性存储解决方案,称为非易失性SRAM或nvSRAM。赛普拉斯的NV-SRAM提供25ns的访问速度(对称的读写操作),这远远优于电池供电的解决方案,后者在最佳情况下可以提供最高45ns的访问速度。在大多数应用程序中,始终首选高速缓存,因为它会直接影响系统性能。 电池供电的SRAM解决方案游戏机经常使用电池供电的SRAM(BBSRAM)在运行期间保留关键数据,并在系统电源关闭时将这些数据保留在电池电源上。 BBSRAM在应用板上使用低功耗SRAM(或微功耗SRAM)IC,电源控制器IC和电池,如图1所示。  图1.带有微控制器的BBSRAM接口 BBSRAM解决方案需要额外的组件和PCB面积。电池的安装必须不在SMD回流过程中,以避免在回流焊接过程中因过热而爆炸。与基于电池的解决方案相关的其他挑战是:•容易受到系统振动的影响,这会使用于固定电池的机械接头不可靠•按计划进行维护和更换•低平均故障间隔时间•由于电池中使用了危险成分,因此要遵守严格的绿色处置/内容法。转载自http://www.gongkong.com/article/202012/91997.html
  • [<HDC.Cloud...] 【HDC.Cloud】开发者社区活动-技术闯关季,闯关赢好礼!
    【活动时间】2021年 4月6日 ~ 5月9日【活动说明】各位开发者大家好,欢迎大家来到【HDC.Cloud】技术闯关季,多重关卡等您闯,每闯一关都会获得一个碎片,积攒碎片可以抽取丰厚奖励哦!所以,大家加油闯关吧!闯关链接:https://developer.huaweicloud.com/activity/hdc2021_developer.html【注意事项】1、为保证您顺利领取活动奖品,请您提前填写奖品收货信息,如您没有填写,视为放弃奖励【点击此处填写信息】。2、活动获奖信息填写时间截止2021年5月9日,如未填写视为弃奖。本次先发活动奖品将于2021年5月31日前统一发出,请您耐心等待。3、本次活动幸运奖将采用巨公摇号平台(https://www.jugong.wang/random-portal/)进行抽取,话题质量相关奖项将由华为云社区工作人员进行评选,如您对评奖方式有异议,请勿参加本次活动。4、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。5、其他事宜请参考【华为云社区常规活动规则】。  【其他活动】
  • [其他] 比AI还玄学,用意念玩手机
    最近,埃隆·马斯克(Elon Musk)的脑机接口技术初创公司Neuralink对外发布了新的视频。在一段3分多时长的视频中,一只名为“Pager”的9岁猕猴可以通过大脑控制光标在屏幕上移动,并玩起“意念乒乓球”(MindPong)游戏。在试验初期,猕猴脑部的运动皮层被植入了2个电极阵列,此时猕猴使用控制杆来与电脑互动,并通过金属吸管品尝美味香蕉奶昔获得奖励,而电极阵列记录了猕猴使用操纵杆玩“乒乓”游戏时的神经活动。这些数据会通过蓝牙传输到解码软件,并通过软件建立神经模式与猴子预期动作之间关系的模型。随着时间推移和数据累积,解码软件可以仅仅根据大脑活动预测运动的方向和速度。为了证明这一能力,科学家们撤掉了操纵杆。结果仅通过大脑活动和解码软件的分析,猕猴就可以控制光标,在屏幕里继续玩“乒乓”游戏。马斯克在社交网站上表示,Neuralink的首款产品在未来或将能够让瘫痪的人使用意念玩手机。
  • [问题求助] 求游戏行业运维解决方案
    求游戏行业运维解决方案
  • [经验交流] 显卡暴涨,等等党输了,这我万万没想到啊
    梦晨 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI万万没想到,去年信心满满准备好钱包要买30系显卡的我,现在连1660Ti都快买不起了。不仅官方原价3899的RTX 3070,一路狂涨到了8000以上的价格,成功以一卡之力斩次时代主机PS5于马下。连早已停产古董级10系显卡,都实现了完美保值,4年过去还能以接近原价的价格二手出售。说好的等等党永不为奴呢?这一次价格暴涨甚至惊动了央视,显卡话题连续登上多档新闻节目。疯涨的显卡对于央视报道显卡价格涨幅100%这件事,显卡吧网友表示,有些缩小事实。其实,玩家们大量需求的中端显卡,涨幅远超一倍。去年9月发布的RTX 3070官方售价3899元,如今已超过8000元。刚刚上市的RTX 3060,从官方的2499元被炒到接近6000元,而且还要预约抢购。波动的市场行情让游戏玩家心态爆炸,跌的时候觉得还能跌,涨的时候又怕继续涨而在高位入手。买不起新一代显卡,可以淘个二手10系或20系显卡先玩玩吗?对不起,它们也涨价了。国内某二手交易平台上,你甚至可以看到,2016年的古董级显卡GTX 1060被炒到1800元,要知道这款显卡上市的官方价格不过才2000多。显卡现在比二手iPhone还保值。N卡需要2倍多价格才能买到,那换A卡呢?本月开始发售的AMD 6700XT现在也成了“空气卡”,价格从官方的3699飙升到5999元。不买N卡也不买A卡,那我买英特尔的集显总可以吧?事实证明,只要沾上“显卡”二字,价格飞涨是避免不了的。有玩家发现,连英特尔预售的i9-11900K(带集显)比i9-11900KF(不带集显)要贵1600多元。集显这次居然卖出了独显的价格。一般来说,酷睿桌面CPU带不带核显的差价应该是200元。原本性价比并不突出的游戏本,现在看来也变香了,虽然性能和桌面级显卡没法比,但起码能买到。不过也别高兴太早,因为矿主们也盯上了它们,用笔记本挖矿已成为现实。在电商平台搜索“笔记本挖矿”,还能看到专门定制的产品。其中10代奔腾处理器搭配3060的组合,显然是为矿主们准备的。虽然其挖矿性能远不如台式机显卡,但相对容易买到,而且挖完矿以后,还能翻新一下以“女生自用”的名义卖给玩家。买不到显卡,受影响的也不止游戏玩家。对搞机器学习和3D渲染的人来说显卡就是他们炼丹的炉、吃饭的碗。我们询问了一位科研的朋友,他说,因为显卡涨价,原本给建模机器更换显卡的计划已经泡汤了,因为远远超出了预算。凡事要辩证地看待,科研虽然受阻,但在地球某个角落,有一位“网瘾少年”可能因此获救。(手动狗头)为何一卡难求显卡缺货,一方面是因为全球半导体产能不足,不仅显卡受到影响,汽车行业也买不到芯片。但最重要原因还是虚拟货币价格的疯涨。从去年一月至今,比特币价格已上涨近10倍,带动了以太币等虚拟货币随之增值。挖矿的利润越来越高,即使溢价购买显卡也有利可图,矿主们自然也愿意加价收购,游戏玩家自然难以原价买到显卡。至于显卡是卖给矿主还是玩家,厂商可能并不关心。索泰美国的Twitter主页甚至官方宣传挖矿,制造商态度由此可见一斑。据媒体报道,受疫情影响韩国很多网吧无法正常营业,开始转型挖矿。其中一家拥有200台高性能电脑的网吧连续挖矿15个小时,能获得约5800元人民币的收入,甚至比网吧正常营业的收入更高。有人还打起了学校深度学习计算集群的主意,黑进系统挖一波矿再走。△图片来自贴吧在利益的驱动下,都敢铤而走险成为“张三”,加价买显卡算什么,个人玩家的力量永远都是渺小的。难道厂商就坐视价格飞涨而不管吗?英伟达在做什么在今年2月份RTX 3060发布前夕,英伟达为了让玩家买到显卡,决定把3060的挖矿效率限制在50%,同时计划推出专用矿卡CMP系列。但很快解锁驱动又被官方意外放出,3060也不可避免地加入了缺货、涨价的队伍。而矿卡系列本身,虽然涨得没有游戏卡夸张,但也……矿卡中的最低端型号30HX近日开卖,720美元的初始售价迅速被突破,已上涨到815美元。这价格,比起与其算力和功耗都相仿的游戏显卡GTX 1660s还要贵上一些,再加上阉割了图形输出接口难以二次销售,恐怕也很难让矿老板们放过游戏显卡。另一方面,英伟达把旗下云游戏服务GeForce Now的价格直接翻倍,即使你买不到显卡想玩云游戏,也会被收割一波。调整后的价格为9.99美元/月或99.99美元/年,不过之前已经订阅的早期用户可以终身保留4.99美元/月的优惠价格。英特尔下场,I卡来了对了,英特尔也宣布将在美国时间3月26日发布全新游戏显卡Xe HPG系列。共有6个型号,据爆料最高配型号将搭载512个执行单元、4096个流处理器,核心频率 1800MHz,16GB的GDDR6显存。对此有网友评价,只要英特尔做到有货,哪怕性能弱一些也能躺赢显卡战争。参考链接:[1]https://www.polygon.com/2021/3/18/22336899/geforce-now-price-priority-membership-nvidia-founders?scrolla=5eb6d68b7fedc32c19ef33b4[2]https://pad.mydrivers.com/1/743/743835.htm[3]https://tieba.baidu.com/p/7266813262[4]https://www.theverge.com/2021/3/18/22338702/intel-xe-hpg-gaming-gpu-dg2-scavenger-hunt-march-26th—完—@量子位 · 追踪AI技术和产品新动态深有感触的朋友,欢迎赞同、关注、分享三连վ'ᴗ' ի ❤——转自知乎/量子位
  • [HDC2021] 【我要去HDC2021】跟随麦扣老师做一个3DRPG游戏
    【我要去HDC2021】跟随麦扣老师做一个3DRPG游戏
  • [行业资讯] 智能供应链管理:4个改变游戏规则的物联网应用
    供应链管理(SCM)在各个行业中都起着至关重要的作用,直接影响着企业的成功和客户的整体满意度。在过去的几年里,国际贸易争端和自然灾害扰乱了供应链管理。这些扰乱造成了巨大的影响——结果是代价高昂的,甚至是灾难性的。它们会影响企业交付产品和增加收入的能力,并且很容易对品牌造成损害。新冠肺炎给供应链管理带来了又一次空前的挫折。据报道,《财富》 1000强企业中有94%经历了新冠肺炎供应链中断。这带来了更复杂的挑战,因为供应链已经成为向最需要的地方分发基本医疗用品、食品和其他关键必需品的重要生命线。更不用说,随着向电子商务的大规模转移,零售商面临着压倒性的生产和交付流程,以确保无缝的在线购物体验。供应链管理面临的挑战整个供应链管理过程非常复杂。它涉及到协调各种通常是脱节的供应链参与者,例如生产者、经纪人、运输者、加工者、零售商、批发商,当然还有消费者。他们通常依靠过时的手动流程来控制和监测产品的流程,从原材料和零件的采购到生产开始再到交付给消费者。在供应链管理生命周期中,监测和控制人员、流程、零件和产品至关重要,以确保效率、良好的声誉和更高的投资回报率。尽管有多种技术解决方案可用,但许多公司仍缺乏其整个供应链的端到端可见性。一份供应链市场报告称,63%的组织没有监控供应链绩效的技术系统,而46%的供应链专业人员仍然依赖excel电子表格进行操作。这导致效率低下,例如错过关键日期和里程碑、合同生命周期瓶颈、跟踪可交付成果、订单重复、下订单失败和付款遗漏等问题。这场流行病考验了全球供应链领导者的应变能力和灵活性,并强调了对更健壮、透明、敏捷和可持续的系统(但最重要的是数字化系统)的迫切需求。带有新传感器和通信技术的物联网(IoT)正在朝着重组整个流程的方向发展。物联网的强大之处在于它能够持续监测、评估和优化所有人员、流程和事物的实时数据,从而为供应链中的每个流程和交易提供前所未有的可见性。物联网在智能供应链管理中的作用1、公路资产跟踪在过去的一年里,供应链发生了翻天覆地的变化。路边取货、BOPIS(网上购物,店内取货)、让邻居代收货、智能储物柜以及制造商直接向消费者(D2C)发货已经司空见惯。随着从药品到送餐服务的更强大的冷链解决方案的发展,即使是易腐商品的需求量也越来越大。这就产生了对公路资产管理解决方案的需求。连网传感器可以跟踪从“车间到商店”中的物品。有各种各样的物联网传感器可以提供一个连贯的实时数据流,其中包括物品的确切位置、在供应链生命周期的不同阶段之间移动所用的时间,甚至是特定送货卡车的移动速度。这有助于识别瓶颈,制定应急计划并确定替代路线,以加快交货速度。它还可以帮助供应商、制造商和配送中心更好地准备接收货物,从而缩短处理时间,确保物料的有效处理,并提高供应商和消费者交货预测的准确性。2、冷链监控食品和药品等某些商品需要存放在理想的温度条件下。借助智能冷链,您可以快速监测、定位和解决任何潜在的错误。例如,环境传感器可以跟踪存储设施、货物集装箱或运输车辆内的环境条件,如温度、湿度、空气质量、光照强度和其他环境因素。当超过阈值时,会实时触发警报,以提示立即缓解,并避免对产品完整性造成任何损害。3、仓库管理仓库错误可能代价高昂。然而,缺乏有效的库存管理方法并不少见。许多企业仍然使用电子表格和基于纸张的方法来手动跟踪其库存。这种方法将数据置于风险之中,因为Marketwatch估计88%的电子表格包含错误。这使得室内无线物联网解决方案在仓库管理中非常有用。物联网有助于减少手工劳动和错误,并有助于提高处理速度和整体仓库效率。连网的传感器可用于监测仓库内材料、产品和其他资产的移动和使用,以最大限度地有效利用它们,防止丢失或被盗,减少搜寻时间并避免缺货情况。放置在货架和储物箱上的传感器还可以实时传达库存水平,以确定使用模式。这种持续的反馈有助于简化仓库运营与各种物流提供商之间的协调,并有助于更有效地利用空间。4、车队管理随着供应链的不断发展,更重要的是要确保所有运输工具,无论是集装箱,还是供应商的送货卡车都能连接起来。物联网传感器网络可以收集车辆使用、速度、排放、位置等信息。内置传感器可传输轮胎、液压系统、发动机和车辆其他部件的关键健康状况和运行参数,以实现预测性维护。远程信息处理传感器可以精确定位未充分利用的车辆或过多的怠速时间,以避免浪费燃料,并使管理员能够就车队的最佳规模和组成做出明智决定。此外,还可以检测到在工作时间以外未经授权的使用,以避免任何篡改或盗窃企图。另外,管理员可以监测废气排放,以确保符合环境和安全法规。配备GPS的传感器还可以为供应链管理人员提供更准确的交货估计,以帮助减少目的地的等待时间,并改善供应链工作流程。转载:物联网之家网
  • [行业资讯] 智能供应链管理:4个改变游戏规则的物联网应用
    图片来源:https://pixabay.com/images/id-4946449/供应链管理(SCM)在各个行业中都起着至关重要的作用,直接影响着企业的成功和客户的整体满意度。在过去的几年里,国际贸易争端和自然灾害扰乱了供应链管理。这些扰乱造成了巨大的影响——结果是代价高昂的,甚至是灾难性的。它们会影响企业交付产品和增加收入的能力,并且很容易对品牌造成损害。新冠肺炎给供应链管理带来了又一次空前的挫折。据报道,《财富》 1000强企业中有94%经历了新冠肺炎供应链中断。这带来了更复杂的挑战,因为供应链已经成为向最需要的地方分发基本医疗用品、食品和其他关键必需品的重要生命线。更不用说,随着向电子商务的大规模转移,零售商面临着压倒性的生产和交付流程,以确保无缝的在线购物体验。供应链管理面临的挑战整个供应链管理过程非常复杂。它涉及到协调各种通常是脱节的供应链参与者,例如生产者、经纪人、运输者、加工者、零售商、批发商,当然还有消费者。他们通常依靠过时的手动流程来控制和监测产品的流程,从原材料和零件的采购到生产开始再到交付给消费者。在供应链管理生命周期中,监测和控制人员、流程、零件和产品至关重要,以确保效率、良好的声誉和更高的投资回报率。尽管有多种技术解决方案可用,但许多公司仍缺乏其整个供应链的端到端可见性。一份供应链市场报告称,63%的组织没有监控供应链绩效的技术系统,而46%的供应链专业人员仍然依赖excel电子表格进行操作。这导致效率低下,例如错过关键日期和里程碑、合同生命周期瓶颈、跟踪可交付成果、订单重复、下订单失败和付款遗漏等问题。这场流行病考验了全球供应链领导者的应变能力和灵活性,并强调了对更健壮、透明、敏捷和可持续的系统(但最重要的是数字化系统)的迫切需求。带有新传感器和通信技术的物联网(IoT)正在朝着重组整个流程的方向发展。物联网的强大之处在于它能够持续监测、评估和优化所有人员、流程和事物的实时数据,从而为供应链中的每个流程和交易提供前所未有的可见性。物联网在智能供应链管理中的作用1、公路资产跟踪在过去的一年里,供应链发生了翻天覆地的变化。路边取货、BOPIS(网上购物,店内取货)、让邻居代收货、智能储物柜以及制造商直接向消费者(D2C)发货已经司空见惯。随着从药品到送餐服务的更强大的冷链解决方案的发展,即使是易腐商品的需求量也越来越大。这就产生了对公路资产管理解决方案的需求。连网传感器可以跟踪从“车间到商店”中的物品。有各种各样的物联网传感器可以提供一个连贯的实时数据流,其中包括物品的确切位置、在供应链生命周期的不同阶段之间移动所用的时间,甚至是特定送货卡车的移动速度。这有助于识别瓶颈,制定应急计划并确定替代路线,以加快交货速度。它还可以帮助供应商、制造商和配送中心更好地准备接收货物,从而缩短处理时间,确保物料的有效处理,并提高供应商和消费者交货预测的准确性。2、冷链监控食品和药品等某些商品需要存放在理想的温度条件下。借助智能冷链,您可以快速监测、定位和解决任何潜在的错误。例如,环境传感器可以跟踪存储设施、货物集装箱或运输车辆内的环境条件,如温度、湿度、空气质量、光照强度和其他环境因素。当超过阈值时,会实时触发警报,以提示立即缓解,并避免对产品完整性造成任何损害。3、仓库管理仓库错误可能代价高昂。然而,缺乏有效的库存管理方法并不少见。许多企业仍然使用电子表格和基于纸张的方法来手动跟踪其库存。这种方法将数据置于风险之中,因为Marketwatch估计88%的电子表格包含错误。这使得室内无线物联网解决方案在仓库管理中非常有用。物联网有助于减少手工劳动和错误,并有助于提高处理速度和整体仓库效率。连网的传感器可用于监测仓库内材料、产品和其他资产的移动和使用,以最大限度地有效利用它们,防止丢失或被盗,减少搜寻时间并避免缺货情况。放置在货架和储物箱上的传感器还可以实时传达库存水平,以确定使用模式。这种持续的反馈有助于简化仓库运营与各种物流提供商之间的协调,并有助于更有效地利用空间。4、车队管理随着供应链的不断发展,更重要的是要确保所有运输工具,无论是集装箱,还是供应商的送货卡车都能连接起来。物联网传感器网络可以收集车辆使用、速度、排放、位置等信息。内置传感器可传输轮胎、液压系统、发动机和车辆其他部件的关键健康状况和运行参数,以实现预测性维护。远程信息处理传感器可以精确定位未充分利用的车辆或过多的怠速时间,以避免浪费燃料,并使管理员能够就车队的最佳规模和组成做出明智决定。此外,还可以检测到在工作时间以外未经授权的使用,以避免任何篡改或盗窃企图。另外,管理员可以监测废气排放,以确保符合环境和安全法规。配备GPS的传感器还可以为供应链管理人员提供更准确的交货估计,以帮助减少目的地的等待时间,并改善供应链工作流程。寻找合适的物联网连接从位置、温度、湿度、光照、移动、处理、移动速度和其他环境因素来看,有许多物联网传感器有望提供关键的业务见解,以改善供应链管理。目前的挑战是找到可靠的物联网连接,以确保准确、完整和及时地交付这些数据。新兴的物联网连接解决方案,如低功耗广域网(LPWAN)正在重新定义供应链管理的可能性。针对低带宽、低计算量的终端节点,较新的LPWAN解决方案为从工业园区和仓库到配送中心和零售的供应链上的任何大型、结构复杂或远程设施提供高能效且经济实惠的物联网连接。在电池寿命、设备和网络连接成本以及易于实施方面,目前没有任何无线类别能够胜过LPWAN。顾名思义,LPWAN节点被设计为可以使用独立电池工作数年,而不是像其他无线解决方案那样运行数天。它们还可以传输数公里远,同时提供深度穿透能力,以连接难以到达的室内和地下位置的设备。对于供应链管理而言,2020年是充满挑战的一年,但它也提供了巨大的变革机会。创新的物联网传感器与强大且可扩展的LPWAN连接相结合,可形成一个新的互连且知情的供应链生态系统,从而提高运营效率,并为交互流程带来更大的透明度,并提高精确度。