小编Jak*_*aka的帖子

POSIX shell就像在Java中实现一样

  1. 有没有人知道POSIX shell的实现,就像用Java编写脚本的语言一样?

  2. 如果没有这个,有没有人知道我可能错过了某个地方是否有ANTLR或JavaCC语法?

编辑: 我知道我有Jython,JRuby,Groovy,JavaScript可用于编写脚本,但它们都没有类似bash的语法.

这不会用于将Java代码编写在一起,而是允许人们运行预定义的命令,这些命令可以通过大型第三方媒体资产管理系统进行操作.

我想运行如下:

ls | grep "something" > output
Run Code Online (Sandbox Code Playgroud)

其中ls和grep是Java命令.(这仅用于说明目的)

谢谢

java bash grammar

5
推荐指数
1
解决办法
2209
查看次数

内核模式GPGPU用法

是否可以从Linux内核模块运行CUDA或OpenCL应用程序?我找到了一个提供此功能的项目,但它需要一个用户空间助手才能运行CUDA程序.(https://code.google.com/p/kgpu/)

虽然这个项目已经避免了用户和内核空间之间的冗余内存复制,但我想知道是否可以完全避免用户空间?

编辑: 让我扩展我的问题.我知道内核组件只能调用内核和其他内核组件提供的API.所以我不打算直接调用OpenCL或CUDA API.CUDA或OpenCL API最终必须调用图形驱动程序以使其发生魔力.很可能这个界面完全不标准,随着每个版本的变化等等......

但是假设您有一个要运行的已编译的OpenCL或CUDA内核.OpenCL/CUDA用户空间库在实际运行内核之前是否做了一些繁重的工作,或者它们只是驱动程序接口周围的轻量级包装器?

我也知道用户空间助手可能是这样做的最佳选择,因为直接调用驱动程序很可能会被新的驱动程序版本破坏...

cuda gpgpu opencl linux-kernel

3
推荐指数
1
解决办法
560
查看次数

_InterlockedIncrement内部实现

使用Visual Studio时会生成以下机器代码_InterlockedIncrement:

; 40   :        _InterlockedIncrement(&framecounter);

  00078 b8 00 00 00 00   mov     eax, OFFSET ?framecounter@@3JA ; framecounter
  0007d b9 01 00 00 00   mov     ecx, 1
  00082 f0 0f c1 08  lock     xadd   DWORD PTR [eax], ecx
Run Code Online (Sandbox Code Playgroud)

如果我要写这个,我会用lock inc DWORD PTR [eax]而不是movxadd

是否有正当理由支持Microsoft xadd并使用2条指令代替1条指令?

x86 assembly visual-studio-2010 intrinsics

2
推荐指数
1
解决办法
749
查看次数