英伟达graphic engineer面经

整个过程问了很多技术问题,主要有以下

1.第一题是开胃菜, 问我说, 你有这样一段代码:
while ()   {
for ()      
{      

if ()   
break;

}

}那个break以后是去哪儿?回答: breakbreakfor循环, 然后做之后的事.
2.
你有一个浮点数, 3.999, 你对它取整(int)a, 是多少?"

3,那么, 你如果想让一个浮点数四舍五入, 但仍然用(int)这个操作, 你该怎么办?那个magic number是多少?
4.你如何交换a和b?我回答答, a -= b, b += a, a = b - a,
  你这个方法有什么issue? 当两个数太大的时候可能会exceed 整数的表达.
  那怎么办?答, tmp = b, b=a, a=tmp;
  不用tmp呢?
  答, 假设你的地址是32位的, double是64位的, 那么我能这么做:

swap(double *addr1, double *addr2)
{
    addr1 | = addr2<<32;
    addr2 = addr1 &0x0000ffff;
    addr1 = addr1>>32;
}
(实际上这道题,最好的做法是
void xorSwap (int *x, int *y) { if (x != y) { *x ^= *y; *y ^= *x; *x ^= *y; } }

5.如何找出一个数的msb(most significant bit)? 最高位的bit.答 : while(v>>1) count++;
   还有更快的吗?
  答, 可以采取二分的思路. 先看v>>16, 如果不是0, 就测v>>24, 如果是0就测v>>8这样子类推. 当然, 最快的方法是说, 就一个数最高位bit的位置其实是对它求log2(v)的过程, 比如说4 就是100, 8 就是1000, 9 是1001但是9的最高位bit数和8一样, 就是log2(9)取整. 所以可以把这个数先cast成double, double x=(double)v|1; 然后, 这个浮点数的指数断的数-1023就是它的msb, 也就是说 (x&0x00000000ffffffff)<
6.你给我描述一下fixed graphic pipeline. (啊...终于到我的老本行了.....)
答, fixed graphic pipeline的方法是, 对于送到图形pipeline里的任务(顶点数据, index数据, 目前的变换矩阵), 先对每个顶点数据进行modelview变换, 然后施加透视投影变换, 下一步是根据index数据以及透视变换的结果进行光栅化, 对于固定管线来说, 光照计算在光栅化之前逐顶点地完成, 然后由光栅化来对像素的颜色进行逐像素插值, 通常采用双曲型插值算法. 然后就是进行z-buffer遮挡检测及剔除, alpha通道合成, 然后完成渲染.
7.那你和我讲一下有shader的pipeline答, 在我的知识里最up to date 的pipeline有四个步骤, vertex shader, tesellation shader, geometry shader, 和pixel shader. vertex shader里可以根据用户编写的shader程序来替换固有管线的顶点变换步骤, tessellation shader是在DirectX11和opengl4.0以后新加入的内容, TS包括hull shader和patch shader两个部分, 对于传入的顶点数据和index数据, HS用来计算control points的变换, 此时可能也可能不对顶点进行进一步地变换, 因用户所采用的算法而定, PatchS中, 根据patch的uv坐标和它的control points的数据, 采用相应的插值算法来计算生成光滑的patch, 比如bicubic spline, bezier patch什么的, whatever, 然后计算的结果传入到GS中去, GS根据需求可能也可能不生成更多的图元或者计算法线, 最后是PS, PS课根据编写的光照程序根据传入的数据逐像素插值, 然后计算最后的光照合成.
8.谈一下你所知道的shading approachs,你刚才谈到compositing, 说说什么是compositing,
9.你知道什么non-rasterization based 算法吗?那光线跟踪呢?
10.现在我们有这样一个项目, 我们的组是做一些关于SLI技术的研发, 我们采用两种approach, 一种是balabala, 另一种是balabala2(这里之所以是balabala因为我没听懂.) 请你谈一下你认为这两种方法的思路是怎样的?
     那我说仔细些, 我们有一种方法是说把屏幕分成两份, 一个GPU计算其中一个, 另一个计算另一份, 你觉得这个方法有什么问题?
11.你知道phone shading是怎么做的?

整个过程就是特别关注技术,你回答的时候提到的知识点,面试官也会深挖,看你掌握的程序。
希望大家都能顺利通过面试,早日找到心仪的工作







#英伟达##面经#
全部评论
社招吗这是
1 回复 分享
发布于 2022-08-06 01:09
什么时候会有结果呢?
点赞 回复 分享
发布于 2022-08-10 12:07
中文还是英文
点赞 回复 分享
发布于 2022-08-07 16:33
兄弟我看你骨骼惊奇,去朝聚变吧
点赞 回复 分享
发布于 2022-08-05 23:06
英伟达已经开始面试了吗
点赞 回复 分享
发布于 2022-08-05 21:06

相关推荐

不愿透露姓名的神秘牛友
05-29 15:00
教授A:“你为什么要讲这么久,是要压缩我们对你的评议时间吗?你们别以为这样就能够让我们对你们少点意见。”&nbsp;“从你的发言和论文格式就能知道你的性格啊。”…….&nbsp;感觉被狠狠霸凌了。
码农索隆:“教授您好,首先我想回应您提出的两点疑问。” “关于我讲解时间较长的问题:这绝非为了压缩各位老师的评议时间。这份毕业设计是我过去几个月倾注了全部心血的作品,从构思、实验、调试到撰写,每一个环节都反复打磨。我深知时间宝贵,所以选择详细讲解,是希望能更完整、清晰地展示它的核心创新点、实现过程和验证结果,确保老师们能充分理解它的价值和我的努力。我完全理解并重视评审环节的意义,也做好了充分准备来听取各位老师的专业意见和批评。几个月的研究都坚持下来了,我怎么可能害怕老师们的点评呢?今天站在这里,正是抱着虚心学习、诚恳求教的态度而来。” “如果我的展示确实超时,影响了后续流程,烦请老师们随时示意,我会立刻调整。我非常期待并预留了充足的时间,希望能听到老师们宝贵的建议和深入的讨论。” “其次,关于您提到‘从发言和论文格式就能知道我的性格’。教授,我对此感到非常困惑和不安。学术研究和答辩的核心,难道不应该是作品本身的质量、逻辑的严谨性、数据的可靠性和结论的合理性吗?论文格式有明确的规范要求,我尽最大努力遵循了这些规范。如果格式上存在疏忽或不足,这属于技术性、规范性的问题,恳请老师们具体指出,我一定认真修改。但将格式问题或个人表达风格(如讲解时长)直接上升为对个人性格的评判,甚至以此作为质疑我学术态度和动机的依据,这让我感到非常不公平,也偏离了学术评议应有的客观和严谨原则。” “我尊重每一位评审老师的专业权威,也衷心希望能得到老师们对我的工作内容本身的专业指导和批评指正。任何基于研究本身的意见,无论多么尖锐,我都会认真聆听、反思并改进。但我恳请老师们,能将评议的焦点放在我的研究本身,而不是对我个人进行主观的推断或评价。谢谢各位老师。”
点赞 评论 收藏
分享
想申请延毕了,找工作找到崩溃,越找就越想摆烂,还有25届的和我一样感受吗?
码农索隆:没事哒,好兄弟,慢慢来,调整心态,车到山前必有路,感到迷茫的时候,多抬头看看
点赞 评论 收藏
分享
评论
4
66
分享

创作者周榜

更多
牛客网
牛客企业服务