草庐IT

一文读懂「四大主流计算芯片 CPU、GPU、ASIC、FPGA」特点和场景

纵观人类历史,从结绳计数、木制计数到巴比伦的粘土板上的刻痕,再到中国古代的算盘,社会生产力的提高与当时所采用的计算工具密切相关。计算工具能力越强,就能大幅缩短人类解决复杂问题的时间,社会生产力水平自然就会越高。CPUCPU,全称CentralProcessingUnit,即中央处理器。现代电子计算机的发明是基于1940年代诞生的冯·诺依曼架构,这个架构主要由运算器、控制器、存储器、输入设备、输出设备等五个主要部分组成。特点:CPU具有通用性和灵活性,能够执行各种任务,如操作系统管理、软件运行和数据处理等。它擅长串行计算,即按照指定顺序执行任务。应用:广泛应用于个人电脑、服务器、移动设备等各种计

读人工不智能:计算机如何误解世界笔记01_技术沙文主义

1. 人工智能的学术范畴1.1. 知识表示与知识推理1.2. 逻辑学1.3. 机器学习1.4. 自然语言处理1.5. 搜索1.6. 规划1.7. 力学1.8. 伦理学2. 广义人工智能2.1. GOFAI2.1.1. GoodOld-FashionedArtificialIntelligence,老式人工智能2.2. 好莱坞版本的人工智能2.2.1. 人们梦想用技术来实现的事情,多半受到了电影、电视节目和书本中一些画面的启发2.2.2. 这种人工智能能够控制机器人管家,理论上会获得意识,并最终控制政府,还有可能变成现实版的终结者阿诺德·施瓦辛格2.3. 在计算机科学界,人们早在20世纪90年代

跟无神学AI之一文读尽Sora

openAI发布视频生成模型Sora,意味着人类距离AI模拟世界又近了一步,流浪地球2中数字人女儿也是对未来科技发展的一个缩影。作为最具有代表性的大模型公司,openAI的任何一个产品都具有一定的价值,代表着AI的前沿发展方向。博主今天较为仔细地阅读了openAI的Sora技术报告,参考开源资料对其中的技术进行了一定的总结,将感悟与各位在此进行分享:VideogenerationmodelsasworldsimulatorsSora的中文为空的意思,延伸含义是无穷尽。为2.15发布的一款视频处理的通用大模型。技术报告中主要交代了训练模型的数据处理方法以及一些功能的评估和介绍。之前的模型对于视频

c++ - 使用 C 中内存地址的 Julia 读/写结构数据

我正在将我的应用程序嵌入到Julia中,我需要一种从Julia和C++读取/写入相同结构的好方法。在Python中我可以简单地做:ffi.cdef("""structkeyboard_s{intforward;intbackward;intleft;intright;intjump;}structkeyboard_s*app_get_keyboard();"""app=ffi.dlopen("app.dll")thekeyboard=app.app_get_keyboard();thekeyboard.forward=1;#thiswouldimmediatlychangethemem

c++ - 可以读/写EEPROM地址但是只能读/写第一个内存页

编辑:我对BITS和BYTES有点困惑,文档指定位而不是字节,并将位作为字节读取。这解释了我的错误。为什么制造商使用位而不是字节来指定容量?这有点令人困惑。;-)我找到了Atmel24C02n一block备用板上的2kbEEPROM,想试一试,看看这个芯片里面有什么样的数据,我是否可以重新使用它。从来没有读过/写过外部存储器。接线很简单(i2c)并且工作得很好。运行i2cScanner,它在总线上发现了8个地址,0x50..0x57。第一个想法:“奇怪,一个设备有8个地址。”文档描述有8x256字节,好吧,8个地址用于8个256字节的页面。但是,当我想访问另一个页面时,例如0x51,我

c++ - 原子读/写值的静态断言

有没有办法检查一个值的读/写(加载/存储)是否是原子的?我有专门版本的并发容器,只能使用这些值,我想添加一个静态断言以防止意外误用。对于x86_64上的所有基本类型都是如此,但它可能不适用于所有平台或所有long数据类型。此外,小型结构和union也有可能被分配原子操作(因为它们只是被编译为使用相同大小的基本复制操作)。 最佳答案 C++0x草案在header中有一个包含宏的部分,这表明没有简单且可移植的方法来检查它。29.4Lock-freeproperty[atomics.lockfree]#defineATOMIC_CHAR_

一文读懂Java集合类和集合接口底层原理和应用场景

Java中的集合框架提供了多种集合类和接口,其中包括Collection接口、List接口以及ArrayList和LinkedList这两个具体的实现类。让我们逐步介绍它们的遍历和常用方法,并探讨它们的底层原理和应用场景。首先,我们需要了解它们之间的关系,具体如下图。其次,我们来详细讲解每一个接口和实现类的用法。List是一个接口,它定义了一组有序集合(也称为序列)的行为。List接口的主要实现类包括ArrayList和LinkedList。List (接口):定义了操作有序集合(列表)的常用方法,如add(),remove(),get(),size()等。是JavaCollectionsFr

c++ - 具有随机读/写的 SSD 原始 I/O 基准测试

我的笔记本电脑有一个SSD磁盘,其物理磁盘扇区大小为512字节,逻辑磁盘扇区大小为4,096字节。我正在开发一个必须绕过所有操作系统缓存的ACID数据库系统,因此我直接从分配的内部内存(RAM)写入SSD磁盘。我还在运行测试之前扩展文件,并且在测试期间不调整文件大小。现在这是我的问题,根据SSDbenchmarks随机读取和写入应分别在30MB/s到90MB/s的范围内。但这是我从无数性能测试中获得的(相当可怕的)遥测数据:读取随机512字节block(物理扇区大小)时为1.2MB/s写入随机512字节block(物理扇区大小)时为512KB/s读取随机4,096字节block(逻辑扇

一文读懂AI计算平台库

随着人工智能产业的快速发展,用户对算力的需求也与日俱增,再加上CPU在支撑大规模高并发计算任务时的不尽人意,各厂商纷纷自研AI芯片和计算平台库,通过屏蔽底层AI芯片的细节,以及对上层应用提供友好的API和开发工具包,让用户无需关注芯片操作逻辑和内部结构,同时拥有CPU应用程序开发一样的体验。本文就主要讲述一些主流的AI计算平台库。01英伟达CUDA如果说Windows成就了Intel在CPU领域的霸主地位,那Nvidia能够在GPU领域一骑绝尘的第一功臣非CUDA莫属。从2007年发布CUDA的第一个版本,到2023年7月发布的CUDAToolkit12.2.1,全球的CUDA开发者在这十几年

c++ - 如何使用 Windows API 正确检查对文件的有效读/写访问?

我已尝试使用GetEffectiveRightsFromAcl执行此操作,但它不会为因我所属的组而被拒绝的文件返回正确的访问掩码。例如,我有一个文件,unreadable.txt。如果我拒绝当前用户对unreadable.txt的写入权限,访问掩码会正确显示我没有写入权限。但是,如果我改为拒绝“经过身份验证的用户”组的写访问权限,则访问掩码意味着我拥有完全访问权限(我没有)。我的替代方法是手动迭代Ace列表并将我的SID与每个条目进行比较,但我无法找到一种干净或简单的方法来检查Ace是否适用于某个组,以及当前用户是否属于那个小组。作为扩展,文件可能不存在(即它是一个新文件,即将被写入)