什么是高性能计算岗位

news/2025/2/14 2:28:35/

最近有小伙伴咨询什么是高性能计算岗位。

1、什么是高性能计算

高性能计算,在很多招聘信息中也会被标注为 HPC,是 High Performance Computing 的缩写。

目前很多 AI 公司或者从事 AI 的部门招聘都有这个岗位需求,我从某聘上截取了几个有代表性的公司的招聘信息,分别是某度、某跳动和某汤,大家可以感受一下。

总结一下该职位要做的事情就是:基于某一硬件平台(AI芯片加速器或某些指令集),完成一些算法的高性能计算实现和算法优化。

比如某汤的职位信息中可以看出,要求候选人有Graphcore、华为等公司的开发经验,也就是说,他们内部可能会针对很多家不同的硬件平台做算法实现和加速,提供更高效的加速算法包。

在比如某跳动的职位信息中,要求熟悉高通平台上的一些技术,说明他们用的是高通的芯片做的算法加速。

所以不同公司要求的熟悉的平台(芯片、指令集)不同,这主要看他们在使用谁家的平台。

这种要求我感觉也不是说一定要有招聘中要求的平台开发经验,有类似平台其实也可以,也是一种优势。

2、 这个岗位是做什么的(职责)?

此类岗位职责一般集中在两大部分。

第一部分内容是高性能计算库的研发和模型的优化,这是最主要的职责,比如某度中写的那样。

这些计算库是什么东西呢?

举个例子:我之前在CPU上写过一个卷积算法,性能很差,实际部署模型时肯定都希望有一个快速的算法来完成模型推理,这些计算库中可能就包含了一些高效的卷积算法实现。

类似于 C++ 标准库中的算法,别人写好封装好,我们直接调用就行,不光功能稳定,而且性能超好。

计算库的研发就是干这个事儿的,里面会实现并且封装各种各样神经网络的基础算法,来支持模型在某一平台上的加速运算。

基于这一部分工作内容,需要的技能如下:

  • 熟练的C/C++编程能力。这个很好理解,C/C++在底层运算上性能很好。
  • 熟悉一些加速库的实现和相关算法。

悉计算机体系结构和一些常见的并行技术。加速库的研发,不光要从算法上做,还要从芯片(计算机)本身来寻找突破点,并行技术(比如多线程/SIMT)可以成倍地提高计算性能。

很多公司希望有 CUDA 开发经验,因为 CUDA 编程也属于一种多线程技术,做的数据并行化计算。

第二部分内容是参与某新一代芯片的设计研发,比如某度和某汤所写的那样。

这一点有些小伙伴可能有点模糊:参与下一代某芯片的设计研发?难道我做软件开发还需要参与硬件设计吗?

当然不是这样的,这个职责的意思是:由于你在现在这一代芯片上做开发,是它的直接使用者,这一代芯片设计的如何、指令集完不完善、性能好不好、哪一块你用着不舒服还有待改进,都可以和硬件设计的同事沟通,指导他们对下一代硬件设计进行完善,使得公司产品不断迭代。

说白了,就是你作为软件研发者和硬件的直接使用者,给硬件研发提建议,然后一起探讨如何更高效地完成下一代的设计。

就是这么回事。

所以,对于这一点,对硬件架构有理解肯定是加分项,可以更好地给硬件同事提出你的建议。

当然理解不那么深刻也无关紧要,很多东西在实际工作中都会慢慢的熟悉起来的,毕竟每个公司的芯片架构和指令集设计可能都不一样。

3、薪资呢?

作为一种研发岗位,薪资也还可以,本科以上3-5年,30k-60k * 13-15不等, 直接贴图。也可去某聘上搜一下看看。

以上内容仅为个人观点,欢迎留言讨论。

原文首发:^拆解高性能计算岗位,欢迎关注。


http://www.ppmy.cn/news/1245440.html

相关文章

python读取PDF文件中的指定页码的范围并存储到指定的文件名

读取PDF文件中的指定页码的范围并存储到指定的文件名 # -*- coding: utf-8 -*- """ Created on Mon Nov 27 21:36:12 2023author: cnliu pip install pypdf2 #安装pypdf2 --3.o版 """ from PyPDF2 import PdfWriter, PdfReader import os#pat…

高效记账,轻松管理,批量记账与柱形图分析助你掌控收支明细

你是否曾经因为繁琐的记账过程而感到烦恼?是否曾经因为无法全面掌握个人或企业的收支情况而感到困惑?现在,我们为你带来了一种全新的高效记账方式,让你从此告别繁琐,轻松掌控收支明细。 首先第一步我们要打开晨曦记账…

Vue 官方周报 #121 - 自动导入组件

Hi 👋 本周的问题中,您将学习如何在Vue 3中自动导入组件。 这个话题是有争议的,如果组件自动导入。你只需要在你的模板中引用它们,它们就可用了。无需手动导入。这个特性在Nuxt 3中被大量使用。 我将向您展示如何在Vue 3中使用…

线上问题整理-ConcurrentModificationException异常

项目场景: 商品改价:商品改价中通过多线程批量处理经过 Lists.partition拆分的集合对象 问题描述 商品改价中通过多线程批量处理经过 Lists.partition拆分的集合对象,发现偶尔会报 java.util.ConcurrentModificationException: nullat jav…

RabbitMQ之消费者可靠性

文章目录 前言一、消费者确认机制二、失败重试机制三、失败处理策略四、业务幂等性唯一消息ID业务判断 五、兜底方案总结 前言 当RabbitMQ向消费者投递消息以后,需要知道消费者的处理状态如何。因为消息投递给消费者并不代表就一定被正确消费了,可能出现…

docker (简介、dcoker详细安装步骤、常用命令)- day01

一、 为什么出现 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应…

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现SCN随机配置网络多变量回归预测 1.data为数据集,7个输入特征&#xff0…

【Android Gradle】之一小时 Gradle及 wrapper 入门

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…