小编Ray*_*yne的帖子

CUDA变形和占用

我一直认为warp调度程序将一次执行一个warp,具体取决于哪个warp就绪,并且这个warp可以来自多处理器中的任何一个线程块.但是,在其中一个Nvidia webminar幻灯片中,表示"占用率=在多处理器上同时运行的warp数除以可以同时运行的最大warp数".那么一次可以运行多个warp?这是如何运作的?

谢谢.

cuda

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

替换第一列文本中的特定字符

我有一个文本文件,我试图将第一列中的特定字符(.)替换为另一个字符( - ).每个字段都以逗号分隔.有些行的最后3列是空的,所以最后有3个逗号.

文本文件示例:

abc.def.ghi,123.4561.789,ABC,DEF,GHI
abc.def.ghq,124.4562.789,ABC,DEF,GHI
abc.def.ghw,125.4563.789,ABC,DEF,GHI
abc.def.ghe,126.4564.789,,,
abc.def.ghr,127.4565.789,,,
Run Code Online (Sandbox Code Playgroud)

我尝试过使用awk替换'.' 在第一列中使用' - ',然后打印出内容.

ETA:尝试了sarnold的建议,得到了我想要的输出.

ETA2:我可以有更长的第一列.有没有办法只改变前3'.' 在第一列' - ',所以我得到了输出

abc-def-ghi-qqq.www,123.4561.789,ABC,DEF,GHI
abc-def-ghq-qqq.www,124.4562.789,ABC,DEF,GHI
abc-def-ghw-qqq.www,125.4563.789,ABC,DEF,GHI
abc-def-ghe-qqq.www,126.4564.789,,,
abc-def-ghr-qqq.www,127.4565.789,,,
Run Code Online (Sandbox Code Playgroud)

awk replace

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

crt1.o函数_start中对'main'错误的未定义引用

我的Makefile有问题.

我正在尝试从2个文件创建程序 - main.cpp包含main函数,modules.c包含main()中调用的函数的定义.modules.c只包含函数定义,没有main函数.

我的Makefile如下:

CC := gcc
CXX := g++
LINK := g++ -Wall
CFLAGS := -g
CXXFLAGS := -g

TARGET = program

$(TARGET): modules.o main.o
   $(LINK) -o $@ $< -lpcap

clean:
   rm *.o $(TARGET)

modules.o:
   $(CC) $(CFLAGS) -c modules.c -o $@ $<

main.o:
   $(CXX) $(CXXFLAGS) -c main.cpp -o $@ $<
Run Code Online (Sandbox Code Playgroud)

我在main.cpp中包含了"modules.h",其中包含所有函数声明.CFLAGS和CXXFLAGS变量指向包含的正确路径

当我尝试使用这个Makefile时,我收到错误

/usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/crt1.o:在函数'_start'中:(.
text + 0x20):未定义的引用'主'

如果我在$(TARGET)行中切换modules.o和main.o的顺序,那么我得到的错误是"未定义引用"我在modules.c中定义的函数,在main.cpp中.

我不知道出了什么问题.

谢谢.

此致,Rayne

c c++ makefile

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

未定义对函数的引用

我正在使用Linux,我有以下文件:

main.c, main.h
fileA.c, fileA.h
fileB.cpp, fileB.h
Run Code Online (Sandbox Code Playgroud)

该函数F1()在中声明fileB.h并定义fileB.cpp.我需要使用函数fileA.c,所以我将函数声明为

extern void F1();
Run Code Online (Sandbox Code Playgroud)

fileA.c.

但是,在编译期间,我收到了错误

fileA.c: (.text+0x2b7): undefined reference to `F1'
Run Code Online (Sandbox Code Playgroud)

怎么了?

谢谢.

ETA:感谢我收到的答案,我现在有以下内容:

在fileA.h中,我有

#include fileB.h
#include main.h

#ifdef __cplusplus
extern "C" 
#endif
void F1();
Run Code Online (Sandbox Code Playgroud)

在fileA.c中,我有

#include fileA.h
Run Code Online (Sandbox Code Playgroud)

在fileB.h中,我有

extern "C" void F1();
Run Code Online (Sandbox Code Playgroud)

在fileB.cpp中,我有

#include "fileB.h"

extern "C" void F1()
{ }
Run Code Online (Sandbox Code Playgroud)

但是,我现在有错误

fileB.h: error: expected identifier or '(' before string constant
Run Code Online (Sandbox Code Playgroud)

c c++ linux undefined-reference

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

使用 scapy 获取 DNS 数据包的原始负载

packet[TCP].payload.load我正在尝试使用和从 pcap 文件中提取所有 UDP 和 TCP 有效负载packet[UDP].payload.load。但是,我注意到packet[UDP].payload.loadDNS 数据包失败了。

输出packet[IP].show()如下(一个DNS查询和响应数据包)。我没有看到任何[ Raw ]部分,我猜这是.load失败的地方。如何在此类数据包的 UDP 层之后提取以字节为单位的有效负载?

====================================================
###[ IP ]### 
  version   = 4
  ihl       = 5
  tos       = 0x0
  len       = 64
  id        = 59183
  flags     = 
  frag      = 0
  ttl       = 128
  proto     = udp
  chksum    = 0x0
  src       = 172.22.32.48
  dst       = 203.211.152.66
  \options   \
###[ UDP ]### 
     sport     = 55884
     dport     = domain
     len       = 44
     chksum    = 0x309a …
Run Code Online (Sandbox Code Playgroud)

dns scapy payload python-2.7

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

外部结构数组

我有一个全局结构数组声明为

struct _links link[255][255][255];
Run Code Online (Sandbox Code Playgroud)

在我的 main.c. 这个结构数组也用在另一个文件action.c中,我尝试在action.c中将它声明为extern,即

extern struct _links link[255][255][255];
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误消息“数组类型具有不完整的元素类型”。我不明白这是什么意思。我该如何解决这个问题?

谢谢你。

c arrays structure extern

0
推荐指数
1
解决办法
6363
查看次数

按值对大型字典进行排序

我正在使用 Python 3.6.4。我有一个由多个进程共享的大型嵌套字典,最终可能包含超过 40 亿个键,我希望按值(“总计”)对其进行排序。字典是这样的。

scores = { 'id_1': {'total': 3, 'golf': 1, 'football': 2}, 
           'id_2': {'total': 6, 'basketball': 1, 'football': 3, 'tennis': 2}}
Run Code Online (Sandbox Code Playgroud)

字典是使用Manager.dict()其中每个进程将更新单个游戏分数和total. 当所有进程都完成写入时,我现在正在测试一个小得多的字典示例,并且正在使用sorted()total.

sorted_scores = sorted(scores.item(), key = lambda item: item[1]['total'], reverse=True)
Run Code Online (Sandbox Code Playgroud)

我相信用 40 亿个键对字典进行排序可能效率低下,所以我想知道是否有不同的方法来做到这一点。最后,我只想找到顶级的100分,对应id_x和条目(例如'basketball''football'等)。

我愿意使用简单的数据库,只要它支持多进程,或者是处理字典的更好方法。

python dictionary

0
推荐指数
1
解决办法
66
查看次数