乐于分享
好东西不私藏

CUDA 是什么|AI 算力民主化系列第 2 篇

CUDA 是什么|AI 算力民主化系列第 2 篇

过去这一年,几乎所有人都在谈论 CUDA[1]。它是深度学习的底座,是新硬件很难与 NVIDIA 竞争的重要原因,也是 NVIDIA 的护城河和市值飙升的核心所在。DeepSeek 又提醒我们一个耐人寻味的事实:它的突破,部分正是靠绕开 CUDA、直接下探到 PTX 这一层[2]才实现的。可这到底意味着什么?每个人似乎都想打破这种锁定效应,但在动手之前,我们得先弄清楚面对的究竟是什么。

CUDA 在 AI 里的统治地位毋庸置疑,但大多数人并不真正清楚 CUDA 到底是什么。有人觉得它是一门编程语言,有人说它是一个框架,也有很多人把它理解成能让 NVIDIA GPU 变快的东西。这些说法都不能算全错,而且也有很多非常聪明的人正在努力解释这件事[3],但都还没有真正覆盖 CUDA 平台的完整范围。

CUDA 从来都不是单独的一样东西。它是一个庞大、分层的平台,由一整套技术、软件库和底层优化组成,共同构成了一个大规模并行计算生态系统。它至少包括:

  • 一套底层并行编程模型,让开发者可以用接近 C++ 的语法调动 GPU 的原始算力。
  • 一组复杂的软件库和框架,也就是支撑关键垂直场景的中间件,比如 AI 里 PyTorch 和 TensorFlow 依赖的 cuDNN。
  • 一批更高层的解决方案,例如 TensorRT-LLM 和 Triton。即使你没有深厚的 CUDA 专业知识,也能通过这些方案让 AI 工作负载(例如大语言模型推理服务)顺利跑起来。

但这些还只是表层。

本文会逐一说明 CUDA 平台的关键层次,回看它一路演化的历史,也会解释为什么它会在今天的 AI 计算里占据如此核心的位置。这也会为本系列下一篇铺路,到时我们会继续讲 CUDA 为什么会如此成功。先剧透一句:这里面跟市场激励的关系,恐怕比跟技术本身的关系还要大得多。

CUDA 之前的路:从图形处理到通用计算

在 GPU 成为 AI 和科学计算的主力之前,它本质上还是图形处理器,也就是专门负责渲染图像的芯片。早期 GPU 会把图像渲染流程直接硬编码进硅片里,这意味着渲染的每一步,比如变换、光照和光栅化,都是固定的。这样的设计处理图形很高效,却也很不灵活,因为它根本没法拿去做别的计算任务。

真正的转折点出现在 2001 年,那时 NVIDIA 推出了 GeForce3,这是第一款支持可编程着色器(Programmable Shaders)的 GPU。这是计算史上的一次巨大转向:

  • 🎨 之前:固定功能 GPU 只能套用预先定义好的效果。
  • 🖥️ 之后:开发者可以自己编写着色器程序,图形流水线第一次真正变得可编程。

随着 Shader Model 1.0 的出现,开发者从此可以为顶点和像素处理编写由 GPU 执行的小程序。NVIDIA 也由此看到了未来的方向:GPU 不该只是一块越来越快的图形芯片,它还可以成为可编程的并行计算引擎。

与此同时,研究人员也很快开始追问:

“🤔 如果 GPU 能为图形运行小程序,那它能不能也拿来做非图形任务?”

最早认真尝试这件事的项目之一,是斯坦福的 BrookGPU Project[4]。Brook 提出了一种编程模型,让 CPU 可以把计算任务卸载到 GPU 上,这正是为 CUDA 铺路[5]的关键思想之一。

这既是一次战略选择,也彻底改变了方向。NVIDIA 没有把计算当作边缘实验,而是把它提升为第一优先级,从硬件、软件到开发者生态,全都围绕 CUDA 深度整合。

CUDA 并行编程模型

到了 2006 年,NVIDIA 推出了 CUDA(Compute Unified Device Architecture),这是第一套面向 GPU 的通用编程平台。CUDA 编程模型实际上由两部分构成:一个是 CUDA 编程语言,另一个是 NVIDIA Driver。

CUDA 是一个从 Driver 到 Kernel 都需要深度整合的分层栈

CUDA 语言从 C++ 演化出来,并进一步暴露了 GPU 的一些底层能力,比如 GPU Threads 和内存模型。程序员可以用它定义一个 CUDA 内核(Kernel),也就是一段在 GPU 上运行的独立计算逻辑。最简单的例子大概像这样:

__global__ voidaddVectors(float *a, float *b, float *c, int n){int idx = threadIdx.x + blockIdx.x * blockDim.x;if (idx < n) {        c[idx] = a[idx] + b[idx];    }}

CUDA 内核让程序员可以定义一段自定义计算逻辑,访问本地资源(例如内存),并把 GPU 当成超高速的并行计算单元来使用。CUDA 语言最终会被编译成 PTX,这是一种类似汇编的语言,也是 NVIDIA GPU 当前支持的最低层接口。

但程序到底是怎么真正把代码跑到 GPU 上的?这就轮到 NVIDIA Driver 出场了,它是 CPU 和 GPU 之间的桥梁,负责内存分配、数据传输和内核执行。下面是一个简单例子:

cudaMalloc(&d_A, size);cudaMalloc(&d_B, size);cudaMalloc(&d_C, size);cudaMemcpy(d_A, A, size, cudaMemcpyHostToDevice);cudaMemcpy(d_B, B, size, cudaMemcpyHostToDevice);int threadsPerBlock = 256;// Compute the ceiling of N / threadsPerBlockint blocksPerGrid = (N + threadsPerBlock - 1) / threadsPerBlock;addVectors<<>>(d_A, d_B, d_C, N);cudaMemcpy(C, d_C, size, cudaMemcpyDeviceToHost);cudaFree(d_A);cudaFree(d_B);cudaFree(d_C);

可以看到,这一切都非常底层,到处都是繁琐细节,比如指针和各种魔法数字(也就是含义不直观、只能靠上下文理解的固定数值)。只要哪一步写错,你得到的往往不是清晰提示,而是很难理解的崩溃。除此之外,CUDA 还暴露了很多 NVIDIA 硬件特有的细节,例如一个 Warp 里到底包含多少 Threads(这一点我们这里先不展开)。

尽管困难不少,这套模型还是让整整一代硬核程序员第一次用上了 GPU 在数值计算上的强大能力。一个典型例子是 AlexNet[6],它在 2012 年点燃了现代深度学习。这一切之所以成为可能,靠的是为卷积、激活、池化、归一化等 AI 操作手写的 CUDA 内核,以及 GPU 能提供的那股原始算力。

很多人一听到 CUDA,想到的通常就是 CUDA 语言和 Driver。可它们离完整答案还差得很远。如果硬要打个比方,这还只是馅料,不是整张饼。随着时间推移,CUDA 平台逐渐长出了更多层次,原来那个缩写本身,也越来越不足以描述今天的 CUDA 到底是什么。

高层 CUDA 软件库:让 GPU 编程更容易上手

CUDA 编程模型打开了通用 GPU 计算的大门。它能力很强,但也带来了两个问题:

  1. CUDA 很难用,而且更糟的是……
  2. CUDA 解决不了性能可移植性(Performance Portability)问题。

大多数为第 N 代 GPU 写出来的内核,到了第 N+1 代通常还能继续跑,但性能往往很差,远远达不到第 N+1 代硬件本来能给出的峰值表现。但在 GPU 领域,最看重的偏偏就是性能。这让 CUDA 成了专家工程师手里的强力工具,却也在大多数开发者面前竖起了一条陡峭得可怕的学习曲线。更现实的问题是,每当新一代 GPU 发布,通常都要做大量重写(例如 Blackwell 这一代现在就已经来了)。

随着 NVIDIA 规模越来越大,它也越来越希望 GPU 不只服务于 GPU 专家,而是让那些在自己领域里很专业、却并不懂 GPU 的人也能用。为此,NVIDIA 的做法是构建一整套丰富而复杂的闭源高层软件库,把底层 CUDA 细节都封装起来,其中包括:

  • cuDNN(2014):加速深度学习任务,例如卷积和激活函数。
  • cuBLAS:优化线性代数运算。
  • cuFFT:在 GPU 上执行快速傅里叶变换(FFT)。
  • 以及很多别的库[7]

有了这些软件库,开发者就能不自己编写 GPU 代码,也照样吃到 CUDA 的能力红利。而为每一代新硬件重写这些库的负担,则由 NVIDIA 自己承担起来。这是一笔很大的投入,但它确实奏效了。

其中,cuDNN 尤其关键。它为 Google 的 TensorFlow(2015)和 Meta 的 PyTorch(2016)铺平了道路,让深度学习框架真正起飞。更早之前当然也有 AI 框架,但 TensorFlow 和 PyTorch 是最早真正做出规模的那一批。今天的 AI 框架里,已经有成千上万个这样的 CUDA 内核,而每一个都很难写。随着 AI 研究爆炸式增长,NVIDIA 也在持续激进地扩展这些软件库,去覆盖新的关键场景。

构建在 CUDA 之上的 PyTorch 依赖着一整串分层堆栈

NVIDIA 对这些强大 GPU 软件库的投入,让全世界可以把注意力放在构建 PyTorch 这样的高层 AI 框架,以及 Hugging Face 这样的开发者生态上。接下来,它又往前走了一步:不只是提供库,而是直接提供整套可以开箱即用的解决方案,让人们根本不必理解 CUDA 编程模型本身。

为应对 AI 和 GenAI 爆发而出现的全栈垂直方案

AI 的热潮早已越过研究实验室,如今几乎无处不在。从图像生成到聊天机器人,从科学发现到代码助手,生成式 AI(Generative AI,GenAI)已经在各行各业迅速扩张,把大量新应用和新开发者一起带进了这个领域。

与此同时,新一代 AI 开发者也随之出现,需求和过去完全不同。在早期,做深度学习往往需要高度专业化的工程师,他们懂 CUDA、懂 HPC(高性能计算),也懂底层 GPU 编程。可现在,出现了一类新的开发者,通常被叫作 AI 工程师(AI Engineers)。他们可以构建和部署 AI 模型,却不必亲手碰任何底层 GPU 代码。

为了满足这批人的需求,NVIDIA 已经不只是提供软件库,而是进一步推出了把底层复杂性封装起来的一站式方案。这些框架不再要求开发者具备深厚的 CUDA 专业知识,而是让 AI 开发者可以用很小的代价完成模型优化和部署,例如:

  • Triton Serving:面向 AI 模型的高性能服务系统,支持团队在多块 GPU 和 CPU 上高效运行推理。
  • TensorRT:深度学习推理优化器,能够自动调优模型,让它们在 NVIDIA 硬件上高效运行。
  • TensorRT-LLM:更进一步的专用方案,专门面向大语言模型的大规模推理。
在 NVIDIA Driver 和 TensorRT-LLM 之间还隔着多层依赖

这些工具几乎把 CUDA 的底层复杂性完全挡在 AI 工程师的视野之外,让他们可以把注意力放在模型和应用本身,而不是硬件细节上。这种系统级杠杆,正是 AI 应用得以横向扩张的重要原因之一。

完整来看,CUDA 平台到底是什么

很多人把 CUDA 理解成一种编程模型、一组软件库,或者干脆理解成 NVIDIA GPU 用来跑 AI 的那套东西。但实际上,CUDA 远不止这些。它既是一个统一的品牌,也是一整套极其庞大的软件集合,还是一个经过高度调优的生态系统,并且与 NVIDIA 的硬件深度绑定。正因如此,CUDA 这个词本身其实有歧义。我们更愿意说“CUDA 平台”,因为它更接近 Java 生态,甚至更接近操作系统,而不只是某种编程语言加运行时库。

CUDA 不断膨胀的复杂性:一个横跨 Driver、语言、软件库和框架的多层生态系统

从核心来看,CUDA 平台至少包括:

  • 一套庞大的代码库:数十年积累下来的 GPU 优化软件,从矩阵运算一直覆盖到 AI 推理。
  • 一个巨大的工具和软件库生态:从用于深度学习的 cuDNN 到用于推理的 TensorRT,CUDA 覆盖了极其广泛的工作负载。
  • 与硬件深度调优的性能:每一次 CUDA 发布,都会围绕 NVIDIA 最新 GPU 架构做深度优化,以保证顶级效率。
  • 专有而不透明的内部实现:当开发者调用 CUDA 库的 API 时,底层实际发生的很多事情都是闭源的,而且深度绑定在 NVIDIA 生态里。

CUDA 是一组强大但也庞杂的技术集合,它不只是几项工具,而是整套支撑现代 GPU 计算的软件平台,影响甚至早已超出 AI 本身。

现在我们已经知道 CUDA 到底是什么,接下来就该理解它为什么会如此成功。先透露一点:CUDA 的成功,真正关键的并不只是性能,而是策略、生态和势能。在下一篇博客里,我们会继续讨论,NVIDIA 的 CUDA 软件到底靠什么塑造并巩固了现代 AI 时代。

下篇见。

关于作者

本文作者 Chris Lattner 是 Modular 联合创始人兼首席执行官(CEO)。他长期从事编译器、开发者工具和 AI 基础设施工作,曾创建并推动 LLVM、Clang、MLIR、Swift 和 Cloud TPU 等关键技术,也曾在 Apple、Google、SiFive 和 Tesla 参与或领导底层系统与 AI 平台相关工作。

更多资源

  • 官网:https://www.modular.com/
  • GitHub:https://github.com/modular/modular
  • Discord:https://discord.gg/modular
  • 论坛:https://forum.modular.com/
  • 博客:https://www.modular.com/blog
  • 文档:https://docs.modular.com/

参考资料

[1] 

CUDA: https://en.wikipedia.org/wiki/CUDA

[2] 

PTX: https://www.tomshardware.com/tech-industry/artificial-intelligence/deepseeks-ai-breakthrough-bypasses-industry-standard-cuda-uses-assembly-like-ptx-programming-instead

[3] 

Ian Cutress 对 CUDA 的解释: https://x.com/IanCutress/status/1884374138787357068

[4] 

BrookGPU Project: http://graphics.stanford.edu/projects/brookgpu/

[5] 

为 CUDA 铺路: https://www.nvidia.com/content/GTC/documents/1001_GTC09.pdf

[6] 

AlexNet: https://en.wikipedia.org/wiki/AlexNet

[7] 

NVIDIA CUDA 库: https://developer.nvidia.com/gpu-accelerated-libraries

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-09 18:21:09 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/596051.html
  2. 运行时间 : 0.086085s [ 吞吐率:11.62req/s ] 内存消耗:4,563.73kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0dd47d53ee81907c3d4e31b91bbf7fe4
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000444s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000748s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000284s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000270s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000454s ]
  6. SELECT * FROM `set` [ RunTime:0.000188s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000564s ]
  8. SELECT * FROM `article` WHERE `id` = 596051 LIMIT 1 [ RunTime:0.000441s ]
  9. UPDATE `article` SET `lasttime` = 1778322070 WHERE `id` = 596051 [ RunTime:0.003979s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000233s ]
  11. SELECT * FROM `article` WHERE `id` < 596051 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000428s ]
  12. SELECT * FROM `article` WHERE `id` > 596051 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000343s ]
  13. SELECT * FROM `article` WHERE `id` < 596051 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000687s ]
  14. SELECT * FROM `article` WHERE `id` < 596051 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000594s ]
  15. SELECT * FROM `article` WHERE `id` < 596051 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000600s ]
0.088679s