什么是高性能计算岗位

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

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不等, 直接贴图。也可去某聘上搜一下看看。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/193536.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试常见问题:什么是进程? 什么是线程?进程和线程有什么区别?

1.什么是进程? 进程是操作系统中一个程序在执行过程中的一个实例,每个进程都有自己独立的地址空间,进程间不共享内存。它是程序运行的最小内存单元; 进程特点: 1> 需要占用独立的内存空间; 2>可以并…

R语言阶段复习一

创建一个长度为7的字符向量,元素为"A", "B", "C", "D", "E", "F", "G",并命名为vec1。 创建一个因子,包含6个水果:"apple", "banana"…

Selenium-介绍下其他骚操作

Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器(如 Chrome、Opera 和 Microsoft Edge)中的工具,用于帮助开发人员调试和研究网站。 借助 Chrome DevTools,开发人员可以更深入地访问网站&#xf…

C语言:一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3。编程找出1000以内的所有完数。

分析: 在主函数 main 中,程序首先定义三个整型变量 m、s 和 i,并用于计算和判断完数。然后使用 printf 函数输出提示信息。 接下来,程序使用 for 循环结构,从 2 到 999 遍历所有的数。对于每个遍历到的数 m&#xff0c…

ESP32-Web-Server编程- JS 基础 3

ESP32-Web-Server编程- JS 基础 3 概述 本示例演示通过 button 控件的 onclick 内联属性,实现在网页上点击按钮,切换 LED 灯图标的转变。 示例解析 前端设计 前端代码建立了一个 id 为 “imageLamp” 的图片对象。并建立两个按钮,设计两…

pinyin4j 汉字转拼音包括——多音字

一、Maven 依赖 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version> </dependency> 二、通过多音字字典匹配 2.1&#xff0c;先看效果效果 输入&#xff1a;我在重庆…

前缀和与差分

文章目录 前缀和一维前缀和公式CODE 二维前缀和公式CODE 差分一维差分思路作用CODE 二维差分思路CODE 前缀和 一维前缀和 板子题&#xff1a;https://www.acwing.com/activity/content/problem/content/829/ 公式 S [ i ] a [ i ] S [ i − 1 ] S[i] a[i] S[i - 1] S[i]…

大数据Doris(三十):删除数据(Delete)

文章目录 删除数据(Delete) 一、​​​​​​​DELETE FROM Statement(条件删除)

【Cmake】Cmake基础学习

CMake学习 一、基础学习 1. 利用Cmake进行单个源代码构建可执行文件 (1)基础命令 最基本的 CMake项目是由单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的 CMakeLists.txt 文件。 注意: 虽然 CMake 支持大写、小写和混合大小写命令,但是…

矩阵置零[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个m x n的矩阵&#xff0c;如果一个元素为0&#xff0c;则将其所在行和列的所有元素都设为0。请使用原地算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[…

[C++]六大默认成员函数详解

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C和Linux &#x1f33c;博客专栏&#xff1a;C入门 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&#x1f3fb; …

【VUE】There are multiple modules with names that only differ in casing.

报错 There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic. Use equal casing. Compare these module identifiers: 图示原因&#xff1a;大小写&#xff0c;有…

C#——多线程之异步调用容易出现的问题

C#——多线程之异步调用容易出现的问题 Q1&#xff1a;For中异步调用函数且函数输入具有实时性 Q1&#xff1a;For中异步调用函数且函数输入具有实时性 在项目进行过程中&#xff0c;发现For中用异步调用带有输入参数的函数时&#xff0c;会由于闭包特性&#xff0c;以及Task.…

ELK----日志分析

ELK相关知识 ELK的概念与组件 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 E&#xff1a;ElasticSearch &#xff08;ES&#xff09; ES是…

C#,《小白学程序》第二十一课:大数的减法(BigInteger Subtract)

1 文本格式 using System; using System.Linq; using System.Text; using System.Collections.Generic; /// <summary> /// 大数的&#xff08;加减乘除&#xff09;四则运算、阶乘运算 /// 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法 /// </summary> p…

C/C++ 常用加密与解密算法

计算机安全和数据隐私是现代应用程序设计中至关重要的方面。为了确保数据的机密性和完整性&#xff0c;常常需要使用加密和解密算法。C是一种广泛使用的编程语言&#xff0c;提供了许多加密和解密算法的实现。本文将介绍一些在C中常用的加密与解密算法&#xff0c;这其中包括Xo…

力扣373场周赛题解

第一题&#xff1a; 这个题是一个简单题&#xff0c;数据范围也特别小&#xff0c;所以直接使用模拟方式暴力解答。 直接进行行移动的过程&#xff0c;然后检查移动后的结果是否与移动前相同。 代码&#xff1a; ​ public class Solution {// 将指定行循环右移k次pri…

OpenCV完结篇——计算机视觉(人脸识别 || 车牌识别)

文章目录 Haar人脸识别方法Haar识别眼鼻口HaarTesseract进行车牌识别深度学习基础知识dnn实现图像分类 Haar人脸识别方法 scaleFactor调整哈尔级联器的人脸选框使其能框住人脸 官方教程指路 每个特征都是通过从黑色矩形下的像素总和减去白色矩形下的像素总和获得的单个值 级…

排序篇(六)----排序小结(不用三连,混流量券)

排序篇(六)----排序小结 排序算法复杂度及稳定性分析 直接插入排序的算法复杂度&#xff1a; 最好情况下&#xff0c;当数组已经有序时&#xff0c;直接插入排序的时间复杂度为O(n)&#xff0c;其中n是数组的大小。最坏情况下&#xff0c;当数组逆序排列时&#xff0c;直接插…

解析实人认证API的工作原理与应用场景

引言 随着数字化时代的不断发展&#xff0c;实人认证技术在各个领域中发挥着越来越重要的作用。其中&#xff0c;实人认证API作为一种先进的技术手段&#xff0c;通过输入姓名、身份证号码和一张人脸照片&#xff0c;与公安库身份证头像进行权威比对&#xff0c;从而返回比对分…