她用AI“反哺”芯片设计,超高效率赶超人类芯片设计师

她用AI“反哺”芯片设计,超高效率赶超人类芯片设计师
芯片设计发展的最新趋势,似乎已很难像摩尔定律所规定的那样:“集成电路上可容纳的晶体管数目大约每隔 18 个月便会增加一倍,性能也增加一倍。”
但伴随人工智能技术的进步,人们对于算力的要求越来越高,这种需求的变化是以周或天记的。相较之下,芯片设计需要的时间明显长得多,这就意味着新微处理器的设计速度已不能满足算法的迭代发展,这就产生了供需的不匹配。
“从现在的情况看,芯片设计需要数年的时间,所以我们现在要做的是,为未来 2 到 5 年后的机器学习模型优化芯片。” 来自谷歌的 Azalia Mirhoseini 及她的同事们如是说。
对此,这个来自谷歌的团队提出了一种新方式来加速芯片设计过程:利用人工智能加速芯片设计,以推动人工智能向更强大的方向发展。
“我们相信,通过人工智能缩短芯片设计周期的方式,可以在硬件和人工智能之间创建一种共生关系,并进一步推动彼此的进步,” Mirhoseini 和同事们表示。
芯片设计是一个复杂而漫长的过程,主要由两个主要元素组成:布局和布线,前者指的是使用设计软件绘制出不同元件的位置,后者则是用线将元件虚拟地连接起来。
以芯片布局为例,这项任务之所以复杂且耗时,是因为该过程涉及到逻辑和内存模块,或者集群设置要兼顾功耗、性能、面积等,与此同时还需要遵守布线密度、互连的原则。
图丨谷歌展示的 TPU 设计算法对比人类结果(来源:谷歌)
在这种情况下,将芯片布局建模为强化学习问题,强化学习系统的目标是降低功率、改善性能和减少面积。为了找到满足多个目标的最佳芯片布局,AI 算法将需要考虑许多变量,包括满足一定的芯片性能,同时还要避免不必要的复杂设计,否则可能会增加芯片的制造成本。这种平衡是一项耗费芯片开发者智力资源的工作。但现在,谷歌认为自己的 AI 已经做出了成绩。
2020 年 4  月,Mirhoseini 及其团队发表了利用强化学习(reinforced learning,RL)实现自动布局的研究。在设计电路布局时,RL 算法的优势体现在可以使用更少的电线、更有效地利用空间,或者功耗更低。在最初的实验中,相比人类设计师 6 至 8 周内找到的解决方案,算法 24 小时就能实现,而且算法的设计成功减少了芯片所需的总布线,从而提高了效率。 
这篇论文的作者、谷歌团队的高级研究科学家 Azalia Mirhoseini,因为她在将 AI 应用于设计芯片研究中的成果上,入选 2019 年《麻省理工科技评论》“35 岁以下科技创新 35 人”全球榜单。
2020 年 11 月 19 - 20 日,Azalia Mirhoseini 将以线上的方式参与 EmTech China 2020 全球新兴科技峰会,并向我们分享推动下一代芯片设计的前沿计算科技。

作为全球顶级科技商业杂志《麻省理工科技评论》的著名会议品牌,EmTech 是全球新兴科技领域最具影响力的大规模会议之一。EmTech 全称是 Emerging Technologies,原意为“新兴科技”,从 1999 年至今的超过 20 年间,EmTech 一直延续着引领全球技术向前的强大创新基因,从实验室到产业,在智慧碰撞的对话与演讲中梳理那些最可能改变世界的新兴科技。      

图 | EmTech China 全球新兴科技峰会往届现场(来源:《麻省理工科技评论》中国)
2020 年 11 月 19 - 20 日,第四届 EmTech China 全球新兴科技峰会将在苏州中惠铂尔曼酒店开启。面对现在这个充满不确定性的全球局势,我们希望通过 EmTech China 2020 为关心最前沿科技发展趋势的观众提供一个近距离接触全球“最强科技大脑”的绝佳机遇。
本届峰会上,我们将围绕“创新引领未来”、“技术驱动下的医疗生态”、“生物医药的无限可能”、“互联世界”、“人工智能‘新基建’”以及“未来基石” 6 大主题展开,紧扣科技发展脉搏,正面应对全球挑战,通过三十余位嘉宾的分享,继续为大家带来最前沿的解读。
目前,EmTech China 2020 的嘉宾邀请还在紧锣密鼓地进行中,我们也将会陆续放出后续的确认嘉宾。
此外,来自中国及全球有潜力改变世界的科研机构、政府、国际组织、企业、金融机构高层与科技工作者们也将共同参与到峰会的讨论当中。
道翰天琼CiGril机器人API
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
1.在平台注册账号
2.登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
3.在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。
开始接入
请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数 类型 默认值 描述
userid   String   无 平台注册账号
appid   String   无 平台创建的应用id
key   String   无 平台应用生成的秘钥
msg   String   "" 用户端消息内容
ip   String   "" 客户端ip要求唯一性,无ip等可以用QQ账号,微信账号,手机MAC地址等代替。

接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552

注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class apitest {

    /*
    
Get请求,获得返回数据
     @param urlStr
    
@return
     /
    private static String opUrl(String urlStr)
    {        
        URL url = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try
        {
            url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(5
10000);
            conn.setConnectTimeout(5 * 10000);
            conn.setRequestMethod("POST");
            if (conn.getResponseCode() == 200)
            {
                is = conn.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1)
                {
                    baos.write(buf, 0, len);
                }
                baos.flush();
                String result = baos.toString();
                return result;
            } else
            {
                throw new Exception("服务器连接错误!");
            }

        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (is != null)
                    is.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }

            try
            {
                if (baos != null)
                    baos.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
            conn.disconnect();
        }
        return "";
    }
    
    
    public static void main(String args []){        
            //msg参数就是传输过去的对话内容。            
            System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
            
    }
}

扫描二维码关注公众号,回复: 11872213 查看本文章

猜你喜欢

转载自blog.51cto.com/14864650/2540176