“以色列现在已经是一个军事超级大国,欧洲任何一个国家的军队都不是我们的对手。” 阿利尔·沙龙在广播中趾高气扬地说。“我们能在一个星期之内征服从两河流域到阿尔及利亚这一广淼的地区,让以色列人收回这历史上属于犹太的土地!”
未几,沙龙的狂言,就遭到了打脸。1973年10月6日下午,以色列人在教堂里度过“赎罪日”时,200多架埃及米格21战机,掩护着800辆T62和T55坦克,撕开了沙龙经营多年的巴列夫防线,与此同时,叙利亚的600门重型火炮也掩护着400辆坦克直冲戈兰高地。而组织反击的以色列战机却在萨姆-6地空导弹面前不断地送出人头。
“苏联的萨姆上天,以色列飞机落地。” 被恶魔导演的战争摧残多年的巴勒斯坦人民欢快的歌声,从约旦河畔传遍了流淌着牛奶与蜂蜜的土地。
仅仅1天,以色列丧失了占领已久的西奈半岛,国家陷入危机,最终向美国爸爸求助才勉强稳住了局势,最终以将西奈半岛归还埃及告终。
导演战争的恶魔并不甘心失败。
1981年6月7日,是犹太人的圣灵降临节,源于公元前1290年希伯来人走出埃及,本是一个象征和平与爱的节日,然而,被撒旦驱使的以色列人却丧心病狂地做出了这件事——
1956年,美国赠与伊拉克一个小型实验用核反应堆,伊拉克在此基础上发展和平利用核能技术。由于冷战时期伊拉克与苏联关系密切,伊拉克对核能的掌握也成为了美国及其中东仆从的眼中钉肉中刺。于是,就在纪念圣灵降临的日子,在伊拉克的塔穆兹,罪恶的撒旦从天而降,14架来自以色列的F15和F16战斗机炸毁了伊拉克的实验反应堆,以色列打着“预防性自卫”的旗号,又向它的主子献上了一份无耻的厚礼。
小H注意到,以色列与伊拉克并不接壤,需要经过约旦、叙利亚或沙特阿拉伯。以色列如何让14架战斗机瞒天过海躲过邻国雷达的探测呢?
原来,以色列空军特别为这一袭击民用设施的国家恐怖主义行动,对空军进行了特殊的训练,让14架战斗机组成密集编队,在雷达看来,似乎是一架民航客机,从而骗过了约旦和沙特阿拉伯的防空网。
之所以约旦和沙特阿拉伯的防空系统错误识别了以军战斗机,是因为当时的雷达并没有装备计算机识别的系统,而是靠人工肉眼识别反射波。无独有偶,在日军偷袭珍珠港时,雷达站的美军士兵也将日军第一攻击波机群误以为是美军B17轰炸机,从而忽略了预警信息。
计算机识别雷达信号的核心算法是图像模式匹配,而模式匹配算法的核心是矩阵乘法。打开任意一本《线性代数》或《高等代数》,都可以很快地了解到矩阵乘法的算法:
如矩阵
那么
对于16x16的矩阵计算,总共需要计算256个元素,每个元素需要计算16次乘加,总共需要4096次运算,也就是O(N^3)的时间复杂度。如果雷达反馈的回波可以离散化为256x256的矩阵,那么,理论上矩阵乘法就需要计算256x256x256 = 16777216次。
更大的惊喜在于,模式匹配算法中,矩阵运算的次数。如果在256x256的矩阵中,用16x16的模式矩阵进行匹配,矩阵乘法的次数为(256-16)x(256-16) = 57600。
我们知道,GPU的CUDA核能够在一个指令周期内计算向量的点积(有时也称为卷积),能把16x16的矩阵乘法简化为256次向量运算指令。而Tensor Core在此基础上更进一步,它精简掉了其他的计算能力,只保留了矩阵乘加能力,能够将以下的矩阵计算:
D = A x B + C
简化为一条指令,在一个指令周期内完成。这样一来,就把矩阵的运算效率提升了2个数量级,从基于CUDA Core的O(N^2)降低到了O(1)。
初代Tensor Core在NVidia的Volta架构引入,每个Tensor Core能够一次性计算16bit浮点数的4x4矩阵,也就是在一个时钟周期内完成4^3=64次半精度浮点运算。
“那么,如果我拿出8x8矩阵,阁下又当如何应对呢?”
小H问自己。
这个问题请看下期:
今天故事的Good End:22年后的2003年,美国德克萨斯州上空,在“哥伦比亚号”航天飞机的爆炸声中,参与了执行以色列这一国家恐怖主义袭击的飞行员伊兰·拉蒙,结束了罪恶的一生。
上期问题答案:
这个公式的设计考虑到了计算机的特性,算出的每个元素A(k)实际上可以视为最终答案的16进制位,因此,对每个A(k)进行移位累加就可以了。